バグ報告 > 管理機能 > お届け時間→時間指定がおかしい |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ehptj |
投稿日時: 2010/1/22 23:30
対応状況: −−−
|
新米 登録日: 2010/1/22 居住地: 投稿: 9 |
お届け時間→時間指定がおかしい EC-CUBE 2.4.2
OS Linux18:49:47 EDT 2008 i686 DBサーバ PostgreSQL 8.1.11 WEBサーバ Apache/2.2.3 (CentOS) PHP 5.1.6 GD Loaded ***************************************** はじめまして。よろしくお願いします。 レジ画面にて、お届け時間の指定をした時間と 注文確認画面にて、実際に出てくるお届け時間がまったく違いまあした。 たとえば、 レジ画面にて「午前中」とプルダウンで指定したものが、 注文確認画面では、「午後」と表記されています。 同じように「12:00〜14:00」と指定すると「16:00〜18:00」とされてしまいます。 このまま注文すると受注画面には間違った方の時間が入ってしまいます。 通販ではかなり深刻な問題だと思うのですが、私の環境だけでしょうか? 現在の対処法は、配送業者登録の画面で 配送時間16に20:00〜21:00 配送時間15に18:00〜20:00 配送時間14に16:00〜18:00 ・・・・・・・・・・・・ と一番下から登録して、配送時間1から6くらいまでは悪さをするので空欄にして使わない設定にしました。 これで逃げることが出来ました。 根本的な解決にはなっていませんが同様のことでお悩みの方の一助になれば。。。 以上、よろしくお願いいたします。 |
seasoft |
投稿日時: 2010/1/23 11:31
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: お届け時間→時間指定がおかしい EC-CUBEコミュニティ(eccube-comu) では、解決済みなのですが、正式版では対応できていなかったのですね。
これ結構根が深い問題なんですよね・・・ たしか、DB 定義から変なので、2.4系での解決は難しいかもしれません。 2.5.0 では、改修されると思います。
|
ramrun |
投稿日時: 2010/1/23 11:48
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: お届け時間→時間指定がおかしい
|
ehptj |
投稿日時: 2010/1/23 15:29
対応状況: −−−
|
新米 登録日: 2010/1/22 居住地: 投稿: 9 |
Re: お届け時間→時間指定がおかしい seesoft様 ramrun様
早速のご返信ありがとうございます。 根深いところの問題とのことですので、そことは戦わず、かわしていきたいと思います。 バージョン2.5に期待いたします。 ありがとうございました。 |
homan |
投稿日時: 2010/1/28 16:59
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: お届け時間→時間指定がおかしい EC-CUBE2.4.1で調べてみたんですが、
配送設定周りはちょっと問題有りですね。。 配送業者を2〜5くらいに増やして確認してみたんですが、 $sqlval['time_id'] = ($cnt * $deliv_id); 上記のようにtime_id を $deliv_id の倍数で 計算して算出する部分があって、 ◆配送業者1(deliv_id = 1) (time_id = 1)午前中 (time_id = 2)12:00〜14:00 (time_id = 3)14:00〜16:00 (time_id = 4)16:00〜18:00 (time_id = 5)18:00〜20:00 ・・・ という感じで配送業者が1社だけだと問題化しませんが、 2社目以降になると ◆配送業者2(deliv_id = 2) (time_id = 2)午前中 (time_id = 4)12:00〜14:00 (time_id = 6)14:00〜16:00 ・・・ ◆配送業者5(deliv_id = 5) (time_id = 5)午前中 (time_id = 10)12:00〜14:00 (time_id = 15)14:00〜16:00 ・・・ となりますので、 time_id が重複する可能性が高くなります。 (これ、既出の問題でしたっけ?見覚えがあるようなないような・・・) なぜ 「$sqlval['time_id'] = ($cnt * $deliv_id);」 という計算になっているのか不明ですが、、、。 まだ、time_id の深い振る舞いについて調べきれていませんが、 とにかくユニークな値が振られれば問題なさそうでしょうか。 2.4系は利用されている方も結構多いと思うので、 有る程度やり方が強引であっても、 ユニーク値が振られれば問題ないのであれば、 seasoftさまがおっしゃられるようなDB定義の変更をせずに 何か方法がないか探ってみようと思います。 comu版の/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery_Input.php 当たりのソースも参考にさせていただきます
|
homan |
投稿日時: 2010/1/29 11:43
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: お届け時間→時間指定がおかしい 長々と書いていたら、タイムアウトで消えてしまったので簡潔に書きます。
先の私の書き込みの不具合の件、 結論、data/class_extends/page_extends/shopping/LC_Page_Shopping_Payment_Ex.phpに ・lfGetPaymentInfo ・lfGetDelivTimeInfo ・lfRegistData を改善したものを張り付けるだけで解決しました。 (社内チェック:EC-CUBE2.4.1) ※但し、ehptj様のご報告の内容とは少し問題が違うような気がしますが・・・。 コミュ版はseasoft様が解決済みだとおっしゃられていましたが、 おそらく私の解決方法と異なるような気がしますので、 不整合が生じる可能性がありました。 なので、コミットせずに一旦こちらで共有します。 一応、弊社内でチェックをした結果でのご報告になりますが、 修正方法が良くわからない方は最寄りの制作会社様などに お願いしてください。うまくできなくてエラー等になっても 私には責任が取れません(アドバイスはできると思いますが・・) 自己責任でお願いいたします。 できればテスト環境などで挙動を確認してください。 問題があれば共有お願いします。 data/class_extends/page_extends/shopping/LC_Page_Shopping_Payment_Ex.phpのデストラクタの 後くらいから、以下のコードを丸ごと張り付ける。 (EC-CUBE 2.4.1をベースとしています。ご注意ください) 念の為、どのように張り付けるのかわからない方の為に、 既存のデストラクタも表示しておきます。 ※追記や変更箇所は赤文字で示します。
<改善策の内容> 先の書き込みで指摘させていただいていますが、 time_idが重複している為に起こる不具合のようです。 支払い方法を選んだあとに日程や時間帯を選びますが、 そこからdtb_order_tempに記録する際に dtb_delivtimeからtime_idだけをキーとして検索するため、 time_idが重複しているときは別の配送業者を抽出してしまい、 結果的に時間もずれたように表示されていました。 今回の場合、支払い方法を選んだときにpayment_idが分かるので、 dtb_paymentからdeliv_idを参照するように変更しています。 そして、dtb_delivtimeからdeliv_timeの情報を抽出する際には deliv_idとtime_idをキーとして利用することで たとえ複数の配送業者情報でtime_idが重複していても ずれることが無いようにできました。 ※修正前の受注(注文)情報に関してはずれは直りませんのでご注意ください。修正後の受注(注文)から正常に動くかと思います。 上記の不具合は、弊社が調べたところでは 2.4.1、2.4.2でも発生することが分かっています。 それ以前はチェックできていませんが、 複数配送業者を設定している場合は確認してみた方が 良いと思います。 http://svn.ec-cube.net/open_trac/changeset/17513 上記の修正が原因かと思われますが、 2008年8月8日なのでおそらく2.3.0-RC1以降が 対象になる可能性がありそうです・・・?(多分です) http://www.ec-cube.net/release/detail.php?release_id=187 http://svn.ec-cube.net/open_trac/query?status=closed&milestone=EC-CUBE2.3.0 (チケットの329が改修に含まれています)
|
ramrun |
投稿日時: 2010/1/29 12:13
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: お届け時間→時間指定がおかしい そういえば、そんなのあったなぁと思って再検索してみました。
基本情報管理>配送設定>配送時間 の追加時にエラー http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=3148&forum=11 チケット #472 管理機能の配送業者の追加でエラー http://svn.ec-cube.net/open_trac/ticket/472 EC-CUBE 2.5で修正が適用される模様。 |
homan |
投稿日時: 2010/1/29 12:22
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: お届け時間→時間指定がおかしい 引用:
情報ありがとうございます! 上記の修正はインストール直後に実施か2.5を待たねばならない様なのですが、 私の方法であればデータベースの修正もありませんし、 運用開始済みの案件であっても「とりあえず」大丈夫かと思います。 ただ、time_id 算出が $cnt で掛け算されている部分や、 (これは掛け算しないようにするだけでいいかも。) time_idのシーケンスが設定されているにもかかわらず全く参照していない状態ですので、 気持ち悪さが残りますが、、 (違うところでバグにならないことを祈ります・・・) 不具合が起きた条件でしか確認していないので、 念の為もう少しチェックを進めてみます。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |