質問 > 管理機能 > 受注管理画面で送り先2以降の情報が表示されない |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
yuki3777 |
投稿日時: 2011/5/17 19:22
対応状況: −−−
|
半人前 登録日: 2011/2/23 居住地: 投稿: 24 |
受注管理画面で送り先2以降の情報が表示されない EC-CUBEバージョン 2.11.1 新規インストールです PHPバージョン PHP 5.3.3 DBバージョン MySQL 5.0.77 受注管理画面で送り先2以降の情報が表示されません。 インストール時は正常に表示されているのを確認していますが どの時点から表示されなないのかはわかりません。 管理者用の受注確認メールには正常に記載されています。 モバイルで同じ症状の書込みがありました。 http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=8020&forum=9&post_id=38747#forumpost38747 以上 解決のためのアドバイスよろしくお願いします。 |
seasoft |
投稿日時: 2011/5/18 8:46
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7369 |
Re: 受注管理画面で送り先2以降の情報が表示されない 参照先に書きましたが、当方環境ではモバイルサイトでの問題は発現しませんでした。
yuki3777 様の状況から察すると、何かトリガー(きっかけ)があるようですね。 しかし、テーブルデータを調査しないと追跡が難しそうです。
|
kwhr1972 |
投稿日時: 2011/5/18 13:07
対応状況: −−−
|
一人前 登録日: 2011/4/1 居住地: 投稿: 74 |
Re: 受注管理画面で送り先2以降の情報が表示されない 私の方でも再現しました。
解決できていませんが、調べた結果を書いておきます。 まず、ロジック内では複数配送先のデータはちゃんと取れているようです。 どうも、テンプレート側のループの添字部分が怪しいです。 /data/Smarty/templates/admin/order/edit.tpl お届け先のループの所ですが、 <!--{section name=shipping loop=$arrForm.shipping_quantity.value}--> <!--{assign var=shipping_index value="`$smarty.section.shipping.index`"}--> となっていて、ループ内の添字を<!--{$shipping_index}-->としています。 で、dtb_shipment_itemテーブルのshipping_idとずれているのでは?と、いう所まで調べました。 私の場合、dtb_shipment_itemテーブルのshipping_idが2とか3とかなのに、ループの添字は0、1、・・・となっていました。 どなたか解決をお願いしますm(__)m |
seasoft |
投稿日時: 2011/5/18 15:27
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7369 |
Re: 受注管理画面で送り先2以降の情報が表示されない テーブル定義的に、怪しい予感が・・・
shipping_id と order_id って、位置が逆な気が・・・ さらに、shipping_id って命名も本当に ID なのかなぁ・・・ 今更ですが・・・ で、本題ですが・・・ order_id を第1キーとして見たときに、shipping_id って、必ず「0」から始まっていませんか? うちのテスト環境のデータでは、そうなっています。 それが、「0」を飛ばして、「2」とかから始まっているとしたら、怪しいですね。なぜ、そのようなデータが生成されたのかがキーになりそうです。 しかし、section なんぞ面倒なものを使わずに foreach を使えば、問題も発生 (てか発覚?) せずに済みそうな印象もありますね。
|
kwhr1972 |
投稿日時: 2011/5/18 16:06
対応状況: −−−
|
一人前 登録日: 2011/4/1 居住地: 投稿: 74 |
Re: 受注管理画面で送り先2以降の情報が表示されない seasoft さん、こんにちは
少し分かってきました。 ロジックは追っていませんが、データの入り方としては、 shipping_id には、0=購入者、1以降がその他送り先っぽいです。 また、shipping_id には、dtb_other_deliv の other_deliv_id が入るっぽいです。 その為、shipping_idの入り方は、 [0]・・・購入者の配送先 [dtb_other_deliv の other_deliv_id ]・・・その他配送先 テーブル定義は怪しいですね・・・ ただ、設計そのものは大丈夫そうで、カラム名がいけないのかと。 項目名が shipping_id じゃなく、other_deliv_id なら、良かったのに。。 本題に戻りますが、 ロジック内で取得したデータの配列の添字は shipping_id を使っていて、 テンプレートでは、添字を[0]、[1]、・・・と処理しているのが原因と思います。 「追記」 再現するのには、dtb_other_deliv テーブルに複数レコードが必要です。 また、送付先には購入者の他にdtb_other_deliv の other_deliv_id が「1」じゃない人を1人選ぶこと。 |
seasoft |
投稿日時: 2011/5/18 16:22
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7369 |
Re: 受注管理画面で送り先2以降の情報が表示されない > また、shipping_id には、dtb_other_deliv の other_deliv_id が入るっぽいです。
ひぃーーー 【追記】 疑問が。 たしか、非会員でも、複数送り先が使えたような・・・ ちょっとした地雷原な予感が。 > テーブル定義は怪しいですね・・・ > ただ、設計そのものは大丈夫そうで、カラム名がいけないのかと。 > 項目名が shipping_id じゃなく、other_deliv_id なら、良かったのに。。 この辺り、2.11 系の終盤でドドっと実装されたので、全然ソースを査読できていなくて・・・ 2.12 系までは、修正はできなそうですし・・・ 本題の件。了解です。 非常に詳細な報告をありがとうございました。 2.11系 と 2.12系 に分けて、チケットを登録しようと思います。
|
seasoft |
投稿日時: 2011/5/18 16:54
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7369 |
Re: 受注管理画面で送り先2以降の情報が表示されない まずは、チケットを発行しました。
http://svn.ec-cube.net/open_trac/ticket/1314 http://svn.ec-cube.net/open_trac/ticket/1315
|
kwhr1972 |
投稿日時: 2011/5/18 17:24
対応状況: −−−
|
一人前 登録日: 2011/4/1 居住地: 投稿: 74 |
Re: 受注管理画面で送り先2以降の情報が表示されない 非会員もやってみました。
shipping_id には、[0]、[1]、・・・と入りました。 ん?? やはり、おかしいですよね。 もしかして、最初からother_deliv_id を入れる必要が無いのか?? 必要なら、テーブルは order_id, shipping_id, other_deliv_id ってなってないと・・・ よく分かりませんが、ひとまず支障なく動くようにして頂けると助かります。 対応されるコミッター様、宜しくお願い致します。 |
yuki3777 |
投稿日時: 2011/5/18 18:43
対応状況: −−−
|
半人前 登録日: 2011/2/23 居住地: 投稿: 24 |
Re: 受注管理画面で送り先2以降の情報が表示されない 皆さん活発に論議されていて頼もしい限りです。
複数の送り先登録に関してですが 複数の送り先の登録をデフォルトの数値からから50名に増やしてみました。送り先登録はできました。 一度の購入処理で50人の送り先に商品を送ってみました。 登録はできましたがご注文ありがとうメールには配送情報以下がカットされて配信されました。入力した後での確認ができません。 もし制限事項があるのであれば、それを明記しないと利用者の誤解を招くと思います。早期の2.12 系完成に期待します。 |
nanasess |
投稿日時: 2011/5/18 21:44
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2325 |
Re: 受注管理画面で送り先2以降の情報が表示されない 複数配送まわりを担当した者です.
このあたりは難解で, 満足にドキュメントも作成できなくてすみません. 引用:
shipping_id は「配送先ID」であり, 以下の値が入ります. 非会員購入の場合 -> 配送先プルダウンの value 値 会員購入の場合 -> 0(会員) 又は other_deliv_id なぜ, shipping_Id に other_deliv_id を入れているかというと, 複数配送先指定画面で, 配送先プルダウンの value 値として other_deliv_id を使用しているからです. 次の画面に遷移する際, other_deliv_id を使用して, 配送先の住所を取得する必要があります. 配送先プルダウンは連番, other_deliv_id は別途保持することも考えたのですが, 複数配送先指定画面での良い保持方法を思いつきませんでした. 管理画面のループに foreach を使用すると良いのはごもっともなのですが, 複雑すぎたので section に変更した記憶があります... 相当慎重に実装/テストしたのですが, まだ不具合を残していてすみません. |
(1) 2 3 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |