バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
metan
投稿日時: 2013/11/14 8:28
対応状況: −−−
一人前
登録日: 2013/3/4
居住地:
投稿: 112
受注管理画面でお届け日とお届け時間を表示させたい。
いつもお世話になっております。

管理画面にてお届け日とお届け時間を表示させたく下記のサイト様を参考にしたのですが、バージョン違いかうまくいきませんでした。

http://ameblo.jp/fumitane/entry-10787959098.html

どなたかご教授頂けませんでしょうか?

よろしくお願いいたします。

EC-CUBEバージョン 2.12.2
PHPバージョン PHP 5.3.3
DBバージョン MySQL 5.0.95
bratech
投稿日時: 2013/11/14 10:57
対応状況: −−−
長老
登録日: 2008/11/28
居住地: 福岡
投稿: 223
Re: 受注管理画面でお届け日とお届け時間を表示させたい。
参考にされているサイトはおそらくEC-CUBEのバージョンが2.4以下のものだと思います。

2.4系までは複数配送先の機能に対応していなかったので1受注に対して必ずお届け日や時間指定も1つに決まっていたのですが
2.11系以降は複数お届け先を設定出来る仕様上、1つの受注に対して複数のお届け日や時間指定が設定される事になります。
これら全てを表示されたいという事なのでしょうか?

方法の概要としては、受注検索処理の部分で
dtb_shippingテーブルから別途値を取得してくるような処理を追加し、
それに合わせてテンプレートを変更する必要があるかと思います。

ご参考まで。


----------------
★売れる通販サイト作ります! ========================
(株)ブラテック EC-CUBEカスタマイズサービス
http://www.bratech.co.jp/lpo/eccube.html
==============================================

DELIGHT
投稿日時: 2013/11/14 11:24
対応状況: −−−
仙人
登録日: 2010/2/3
居住地: 熊本県・九州・長野県・関東甲信越
投稿: 572
Re: 受注管理画面でお届け日とお届け時間を表示させたい。
2.12からは複数配送先機能があるため、
1受注に複数のお届け日とお届け時間が存在することになります。

解決方法考えてるうちにコードまで書いてしまったので、
今回は詳しいコードまで載せます。
以下配送先IDの最も若いものだけ表示する改修。

LC_Page_Admin_Order.php

    //action()内の変数をそれぞれ下記に変更。
    function action() {
        $where = 'dtb_order.del_flg = 0';
        $order = 'dtb_order.update_date DESC';
    }

    //findOrders()を下記に変更
    function findOrders($where, $arrValues, $limit, $offset, $order) {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $table = <<<EOSQL
            dtb_order, (
                SELECT MIN(shipping_id) AS shipping_id, order_id
                FROM dtb_shipping
                WHERE del_flg = 0
                GROUP BY order_id
            ) T2
            LEFT JOIN dtb_shipping
                ON T2.shipping_id = dtb_shipping.shipping_id
                AND T2.order_id = dtb_shipping.order_id
EOSQL;
        
        $where .= 'AND dtb_order.order_id = T2.order_id';
        $objQuery->setLimitOffset($limit, $offset);
        $objQuery->setOrder($order);
        return $objQuery->select('*', $table, $where, $arrValues);
    }


index.tpl

<!--{* それぞれ下記のように変更 *}-->
<!--{$arrResults[cnt].shipping_date|sfDispDBDate|h|default:"予定日なし"}-->
<!--{$arrResults[cnt].shipping_time|h|default:"時間指定なし"}-->


【追記: bratech様の仰る様に、複数配送先指定は2.11の新機能のようです】


----------------
+ DAISY inc. -------------------- +
EC-CUBE構築・カスタマイズサービス
EC・WEB構築などお気軽にご相談ください。

デイジー株式会社
http://daisy.link/

metan
投稿日時: 2013/11/14 13:40
対応状況: −−−
一人前
登録日: 2013/3/4
居住地:
投稿: 112
Re: 受注管理画面でお届け日とお届け時間を表示させたい。
DELIGHT様

初めましてmetanと申します。この度はご連絡くださいまして誠にありがとうございます。

頂いた内容の変更点ですが下記で大丈夫でしょうか?

>data/class/pages/admin/order/LC_Page_Admin_Order.php

$where = 'del_flg = 0';

【下記に変更】

$where = 'dtb_order.del_flg = 0';


$order = 'update_date DESC';

【下記に変更】

$order = 'dtb_order.update_date DESC';


function findOrders($where, $arrValues, $limit, $offset, $order) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->setLimitOffset($limit, $offset);
$objQuery->setOrder($order);
return $objQuery->select('*', 'dtb_order', $where, $arrValues);
}

【下記に書き換え】

function findOrders($where, $arrValues, $limit, $offset, $order) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
$table = <<<EOSQL
dtb_order, (
SELECT MIN(shipping_id) AS shipping_id, order_id
FROM dtb_shipping
WHERE del_flg = 0
GROUP BY order_id
) T2
LEFT JOIN dtb_shipping
ON T2.shipping_id = dtb_shipping.shipping_id
AND T2.order_id = dtb_shipping.order_id
EOSQL;

$where .= 'AND dtb_order.order_id = T2.order_id';
$objQuery->setLimitOffset($limit, $offset);
$objQuery->setOrder($order);
return $objQuery->select('*', $table, $where, $arrValues);
}


>data/Smarty/templates/admin/order/index.tpl

<td class="center"><!--{$arrResults[cnt].commit_date|sfDispDBDate|default:"未発送"}--></td>

の下に【下記を追加】

<td class="center"><!--{$arrResults[cnt].shipping_date|sfDispDBDate|h|default:"予定日なし"}--></td>
<td class="center"><!--{$arrResults[cnt].shipping_time|h|default:"時間指定なし"}--></td>

で問題ないでしょうか?お手数おかけします。何卒よろしくお願いいたします。
metan
投稿日時: 2013/11/14 13:50
対応状況: −−−
一人前
登録日: 2013/3/4
居住地:
投稿: 112
Re: 受注管理画面でお届け日とお届け時間を表示させたい。
bratech様

初めましてmetanと申します。

この度はご返信頂きまして誠にありがとうございます。

大変貴重なご意見をいただきまして誠にありがとうございます。早速検討したいと思います。

ありがとうございます。
DELIGHT
投稿日時: 2013/11/14 13:50
対応状況: −−−
仙人
登録日: 2010/2/3
居住地: 熊本県・九州・長野県・関東甲信越
投稿: 572
Re: 受注管理画面でお届け日とお届け時間を表示させたい。
そう、それでいいと思います。

index.tplに関しては好みがあるでしょうから適宜調節して下さい。


----------------
+ DAISY inc. -------------------- +
EC-CUBE構築・カスタマイズサービス
EC・WEB構築などお気軽にご相談ください。

デイジー株式会社
http://daisy.link/

metan
投稿日時: 2013/11/14 14:12
対応状況: −−−
一人前
登録日: 2013/3/4
居住地:
投稿: 112
Re: 受注管理画面でお届け日とお届け時間を表示させたい。
DELIGHT様

ご返信頂きまして誠にありがとうございます。

先ほどの内容で変更を加えたのですが、システムエラーが出てしまいました。

下記がログになります。

Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。
SQL: [SELECT * FROM dtb_order, ( SELECT MIN(shipping_id) AS shipping_id, order_id FROM dtb_shipping WHERE del_flg = 0 GROUP BY order_id ) T2 LEFT JOIN dtb_shipping ON T2.shipping_id = dtb_shipping.shipping_id AND T2.order_id = dtb_shipping.order_id WHERE dtb_order.del_flg = 0AND dtb_order.order_id = T2.order_id ORDER BY dtb_order.update_date DESC ]
MDB2 Error: syntax error
_doQuery: [Error message: Could not execute statement]
[Last executed query: PREPARE mdb2_statement_mysql_327fd70e020744a095ffb1db74f3a7e174c2ca405c FROM 'SELECT * FROM dtb_order, ( SELECT MIN(shipping_id) AS shipping_id, order_id FROM dtb_shipping WHERE del_flg = 0 GROUP BY order_id ) T2 LEFT JOIN dtb_shipping ON T2.shipping_id = dtb_shipping.shipping_id AND T2.order_id = dtb_shipping.order_id WHERE dtb_order.del_flg = 0AND dtb_order.order_id = T2.order_id ORDER BY dtb_order.update_date DESC LIMIT 0, 10']
[Native code: 1064]
[Native message: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dtb_order.order_id = T2.order_id ORDER BY dtb_order.update_date DESC LIMIT 0, 1' at line 1]
on [/●/●/●/public_html/data/class/SC_Query.php(1008)] from
login_id = ●(0)[●]
/●/●/●/public_html/admin/order/index.php(34): LC_Page_Admin_Order_Ex->process
/●/●/●/public_html/data/class_extends/page_extends/admin/order/LC_Page_Admin_Order_Ex.php(56): LC_Page_Admin_Order->process
/●/●/●/public_html/data/class/pages/admin/order/LC_Page_Admin_Order.php(84): LC_Page_Admin_Order->action
/●/●/●/public_html/data/class/pages/admin/order/LC_Page_Admin_Order.php(161): LC_Page_Admin_Order->findOrders
/●/●/●/public_html/data/class/pages/admin/order/LC_Page_Admin_Order.php(472): SC_Query->select
/●/●/●/public_html/data/class/SC_Query.php(167): SC_Query->getAll
/●/●/●/public_html/data/class/SC_Query.php(279): SC_Query->prepare
/●/●/●/public_html/data/class/SC_Query.php(949): SC_Query->error
/●/●/●/public_html/data/class/SC_Query.php(1008): trigger_error

解決策はございますでしょうか?

お手数おかけします。何卒よろしくお願いいたします。
DELIGHT
投稿日時: 2013/11/14 14:26
対応状況: −−−
仙人
登録日: 2010/2/3
居住地: 熊本県・九州・長野県・関東甲信越
投稿: 572
Re: 受注管理画面でお届け日とお届け時間を表示させたい。
スペースを1つ入れ忘れていましたので、

//findOrders()内の
$where .= ' AND dtb_order.order_id = T2.order_id';
//        ↑
//ここに半角スペースを入れて下さい。


----------------
+ DAISY inc. -------------------- +
EC-CUBE構築・カスタマイズサービス
EC・WEB構築などお気軽にご相談ください。

デイジー株式会社
http://daisy.link/

metan
投稿日時: 2013/11/14 14:42
対応状況: −−−
一人前
登録日: 2013/3/4
居住地:
投稿: 112
Re: 受注管理画面でお届け日とお届け時間を表示させたい。
DELIGHT様

ご教授通り半角スペースを入れたのですが、システムエラーが表示されてしまいました。

ログは下記になります。


Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。
SQL: [SELECT * FROM dtb_order, ( SELECT MIN(shipping_id) AS shipping_id, order_id FROM dtb_shipping WHERE del_flg = 0 GROUP BY order_id ) T2 LEFT JOIN dtb_shipping ON T2.shipping_id = dtb_shipping.shipping_id AND T2.order_id = dtb_shipping.order_id WHERE del_flg = 0 AND dtb_order.order_id = T2.order_id ORDER BY update_date DESC ]
MDB2 Error: unknown error
_doQuery: [Error message: Could not execute statement]
[Last executed query: PREPARE mdb2_statement_mysql_34540b3e797a8ae2164dc29894c636530f78dc43fc FROM 'SELECT * FROM dtb_order, ( SELECT MIN(shipping_id) AS shipping_id, order_id FROM dtb_shipping WHERE del_flg = 0 GROUP BY order_id ) T2 LEFT JOIN dtb_shipping ON T2.shipping_id = dtb_shipping.shipping_id AND T2.order_id = dtb_shipping.order_id WHERE del_flg = 0 AND dtb_order.order_id = T2.order_id ORDER BY update_date DESC LIMIT 0, 10']
[Native code: 1052]
[Native message: Column 'del_flg' in where clause is ambiguous]
on [/●/●/●/public_html/data/class/SC_Query.php(1008)] from 60.238.89.229
login_id = ●(0)[●]
/●/●/●/public_html/admin/order/index.php(34): LC_Page_Admin_Order_Ex->process
/●/●/●/public_html/data/class_extends/page_extends/admin/order/LC_Page_Admin_Order_Ex.php(56): LC_Page_Admin_Order->process
/●/●/●/public_html/data/class/pages/admin/order/LC_Page_Admin_Order.php(85): LC_Page_Admin->sendResponse
/●/●/●/public_html/data/class/pages/admin/LC_Page_Admin.php(101): SC_Helper_Plugin->doAction
/●/●/●/public_html/data/class/helper/SC_Helper_Plugin.php(115): call_user_func_array
(): SortOrderList->reCreateList
/●/●/●/public_html/data/downloads/plugin/SortOrderList/SortOrderList.php(177): LC_Page_Admin_Order->findOrders
/●/●/●/public_html/data/class/pages/admin/order/LC_Page_Admin_Order.php(472): SC_Query->select
/●/●/●/public_html/data/class/SC_Query.php(167): SC_Query->getAll
/●/●/●/public_html/data/class/SC_Query.php(279): SC_Query->prepare
/●/●/●/public_html/data/class/SC_Query.php(949): SC_Query->error
/●/●/●/public_html/data/class/SC_Query.php(1008): trigger_error

お手数おかけします。何卒よろしくお願いいたします。
DELIGHT
投稿日時: 2013/11/14 14:56
対応状況: −−−
仙人
登録日: 2010/2/3
居住地: 熊本県・九州・長野県・関東甲信越
投稿: 572
Re: 受注管理画面でお届け日とお届け時間を表示させたい。
action()内の$whereと$orderを元に戻していませんか?


----------------
+ DAISY inc. -------------------- +
EC-CUBE構築・カスタマイズサービス
EC・WEB構築などお気軽にご相談ください。

デイジー株式会社
http://daisy.link/

(1) 2 3 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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.