質問 > 管理機能 > 受注管理画面でお届け日とお届け時間を表示させたい。 |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
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テーブルから別途値を取得してくるような処理を追加し、 それに合わせてテンプレートを変更する必要があるかと思います。 ご参考まで。
|
DELIGHT |
投稿日時: 2013/11/14 11:24
対応状況: −−−
|
仙人 登録日: 2010/2/3 居住地: 熊本県・九州・長野県・関東甲信越 投稿: 572 |
Re: 受注管理画面でお届け日とお届け時間を表示させたい。 2.12からは複数配送先機能があるため、
1受注に複数のお届け日とお届け時間が存在することになります。 解決方法考えてるうちにコードまで書いてしまったので、 今回は詳しいコードまで載せます。 以下配送先IDの最も若いものだけ表示する改修。 LC_Page_Admin_Order.php
index.tpl
【追記: bratech様の仰る様に、複数配送先指定は2.11の新機能のようです】
|
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に関しては好みがあるでしょうから適宜調節して下さい。
|
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つ入れ忘れていましたので、
|
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を元に戻していませんか?
|
(1) 2 3 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |