バージョン選択

フォーラム

メニュー

オンライン状況

74 人のユーザが現在オンラインです。 (51 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 74
もっと...

サイト内検索

質問 > 管理機能 > 受注管理画面でお届け日とお届け時間を表示させたい。2

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
320320
投稿日時: 2017/2/16 10:52
対応状況: 解決済
半人前
登録日: 2016/5/26
居住地:
投稿: 21
受注管理画面でお届け日とお届け時間を表示させたい。2
[EC-CUBE]ECCUBE  2.13.5 
[レンタルサーバ] さくら
[OS] ウインドウズ10 ホーム64ビット
[PHP] PHP 5.6
[データベース] MySQL 5.5
[WEBサーバ] さくらのレンタルサーバ スタンダード
[ブラウザ] Google Chrome
[導入プラグインの有無] あり
[カスタマイズの有無] あり

すいません、ご指導お願いいたします。

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=13791&forum=11&post_id=62049#forumpost62049

上記スレッドを参考にカスタマイズを進めていたのですが、どうやらdtb_shippingから数値が返ってきてないのか、カスタマイズが反映されません。試しにdtb_shippingのフィールド名を記載してみても反映がされませんでした。
前スレで起こっていたエラーにかんしては、プラグインを修正することで対応でき、エラーは起こっておりません。

別に作った何もしてないテストサーバーでは問題なく稼働したので、本番環境のプラグイン、もしくはカスタマイズ部分だと推測しているのですが、検討がつきません。

どなたかご教授いただけないでしょうか。よろしくお願いします。
yuh
投稿日時: 2017/2/16 17:12
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1818
Re: 受注管理画面でお届け日とお届け時間を表示させたい。2
前の流れがよくわからないんですが、一つは決済モジュールによってはその部分をモジュール内のテンプレートに切り替える場合があります。
データが取得できているか確認して、
取得できている場合はモジュール内のテンプレートファイルにも記載してみてください。

もしデータが取得できていない場合は下記のコードをLC_Page_Admin_Order_Ex.phpに追記して、
テンプレート内に
<!--{$arrResults[cnt].deliv_date_time|h}-->

このような形で追加すればできると思います。



    public function findOrders($where, $arrValues, $limit, $offset, $order)
    {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        if ($limit != 0) {
            $objQuery->setLimitOffset($limit, $offset);
        }
        $objQuery->setOrder($order);
//        return $objQuery->select('*', 'dtb_order', $where, $arrValues);
        $col = "
        *,
        (
            SELECT
                group_concat(
                    CONCAT(
                        shipping_date,
                        '(',
                        (
                            SELECT 
                                deliv_time 
                            FROM 
                                dtb_delivtime 
                            WHERE 
                                deliv_id = dtb_order.deliv_id AND 
                                time_id = dtb_shipping.time_id
                            LIMIT 1
                        ),
                        ')'
                    )
                separator ',') 
            FROM
                dtb_shipping 
            WHERE
                order_id = dtb_order.order_id
        ) as deliv_date_time
        ";
        return $objQuery->select($col, 'dtb_order', $where, $arrValues);
    }


----------------


http://ec-lab.net/

320320
投稿日時: 2017/2/17 17:25
対応状況: −−−
半人前
登録日: 2016/5/26
居住地:
投稿: 21
Re: 受注管理画面でお届け日とお届け時間を表示させたい。2
yuh様

ありがとうございます!このカスタマイズで無事希望通りの動作ができました!本当に有難うございます。
今回は決済モジュールに絡んで出来なかったという事で間違いなかったです。
y社のモジュールを使用してました。
yuh
投稿日時: 2017/2/17 20:21
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1818
Re: 受注管理画面でお届け日とお届け時間を表示させたい。2
決済モジュールによってはモジュールアップデートで変更した部分が上書きされる場合があるので要注意です。
念のためにバックアップを取っておいた方がいいかと思います。


----------------


http://ec-lab.net/

320320
投稿日時: 2017/2/20 12:58
対応状況: −−−
半人前
登録日: 2016/5/26
居住地:
投稿: 21
Re: 受注管理画面でお届け日とお届け時間を表示させたい。2
申し訳ございません。
先日のカスタマイズでは、時刻指定がない注文が表示されてない事がわかりました。。。どのように調整したら時刻無しでも出るでしょうか。ご指導お願いいたします。
yuh
投稿日時: 2017/2/20 14:14
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1818
Re: 受注管理画面でお届け日とお届け時間を表示させたい。2
CONCATしている部分で連結している項目がNULLになると全体がNULLになるので、coalesceかifnullでチェックして変わりの文字列を代入するようにクエリを変更で対応できるかと思います。


----------------


http://ec-lab.net/

320320
投稿日時: 2017/2/20 16:26
対応状況: −−−
半人前
登録日: 2016/5/26
居住地:
投稿: 21
Re: 受注管理画面でお届け日とお届け時間を表示させたい。2
yuh様ありがとうございます。

coalesceとIFNULLを挑戦してみましたが、初心者なので動作が上手くいきませんでした。

日付だけわかればいいということで、DELIV_TIME部分を削除し、日付のみの表示に変更し対応できました。

お騒がせし、大変申し訳ございません。ありがとうございました。
yuh
投稿日時: 2017/2/20 21:19
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1818
Re: 受注管理画面でお届け日とお届け時間を表示させたい。2
コードを下記のように変更すれば取得できます。



 public function findOrders($where, $arrValues, $limit, $offset, $order)
    {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        if ($limit != 0) {
            $objQuery->setLimitOffset($limit, $offset);
        }
        $objQuery->setOrder($order);
//        return $objQuery->select('*', 'dtb_order', $where, $arrValues);
        $col = "
      *,
        (
            SELECT
                group_concat(
                    CONCAT(
                        coalesce(shipping_date,'--'),
                        '(',
                        coalesce(
                        (
                            SELECT 
                                deliv_time 
                            FROM 
                                dtb_delivtime 
                            WHERE 
                                deliv_id = dtb_order.deliv_id AND 
                                time_id = dtb_shipping.time_id
                            LIMIT 1
                        ),'--'),
                        ')'
                    )
                separator ',') 
            FROM
                dtb_shipping 
            WHERE
                order_id = dtb_order.order_id
        ) as deliv_date_time
        ";
        return $objQuery->select($col, 'dtb_order', $where, $arrValues);
    }


----------------


http://ec-lab.net/

320320
投稿日時: 2017/4/3 10:26
対応状況: −−−
半人前
登録日: 2016/5/26
居住地:
投稿: 21
Re: 受注管理画面でお届け日とお届け時間を表示させたい。2
大変遅くなってしまいましたが、レスの式で無事稼働しました。
今になって気づきました。かなり効率的に業務が進むようになり感動しています!ありがとうございます!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,290名です
総投稿数は109,689件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.