バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > フロント機能 > 2.12.1 非会員購入 1つの別納先を指定した際に、配送日時、配送時間帯が2つ表示される

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
t_tsuru
投稿日時: 2012/8/9 22:57
対応状況: −−−
半人前
登録日: 2012/8/9
居住地:
投稿: 11
2.12.1 非会員購入 1つの別納先を指定した際に、配送日時、配送時間帯が2つ表示される
コミッターではないため、こちらに投稿させていただきます。

【シナリオ】
前提: ログインしていない
1. カートに商品を入れる
2. /cart/index.php
購入に進むボタンをクリック
3. /shopping/index.php
非会員購入ボタンをクリック
4. /shopping/nomember.php
別納先を指定して入力を埋める
5. /shoppoing/payment.php
配送日時、配送時間帯が2つ表示されています。

【fix】
2.11からの更新時にバグが混入しています。
87行目
> $objPurchase->getShippingTemp($this->is_multiple);

< $objPurchase->getShippingTemp(true);

これだけで取り急ぎは動作します。

【原因】
非会員購入時のセッションが怪しいです
$_SESSION['shipping'][0] に商品の情報
$_SESSION['shipping'][1] に配送先が入っています。
seasoft
投稿日時: 2012/8/10 0:19
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 2.12.1 非会員購入 1つの別納先を指定した際に、配送日時、配送時間帯が2つ表示される
本件、既に最新のデベロッパー版では、既に改修が行われているようです。
http://svn.ec-cube.net/open_trac/changeset/21993
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=10962&forum=10

ただし、異なる実装方法のようですので、どちらの方法がより適切なのか興味があります。

# しかし、お届け先の複数指定絡みの不具合は、後をひいてしまいますね・・・


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

casa
投稿日時: 2012/8/28 15:53
対応状況: −−−
長老
登録日: 2011/10/3
居住地:
投稿: 210
Re: 2.12.1 非会員購入 1つの別納先を指定した際に、配送日時、配送時間帯が2つ表示される
お世話になります。

getShippingTempで回避はできますがそれは直接の原因ではないですね。
やはりご指摘されているように非会員購入時のセッションが問題です。

LC_Page_Shopping.php::lfRegistData()に以下の処理がありますが、
別のお届け先を指定した場合の処理に問題があります。

        if ($isMultiple) {
            $objPurchase->unsetOneShippingTemp(0);
            $objPurchase->unsetOneShippingTemp(1);
            $objPurchase->saveShippingTemp($arrShippingOwn, 0);
            if ($arrParams['deliv_check'] == '1') {
                $objPurchase->saveShippingTemp($arrShipping, 1);
            }
        } else {
            $objPurchase->unsetAllShippingTemp(true);
            if ($arrParams['deliv_check'] == '1') {
                $objPurchase->saveShippingTemp($arrShipping, 1);  // ←ここは0であるべき
            } else {
                $objPurchase->saveShippingTemp($arrShippingOwn, 0);
            }
        }


単数配送の場合には、「別のお届け先」のチェックが入っていてもいなくても
お届け先は1箇所なので配送ID(shipping_id)は常に0でなくてはなりませんが、
上記で1が指定されているために、セッション上にお届先情報が2つ分保持されて
しまいます。

2.11のときには上記には0が指定されていましたが、2.12から1が指定されているようです。

コミッターでないので、問題がなければどなたかご対応して頂ければ幸いです。
casa
投稿日時: 2012/8/28 17:41
対応状況: −−−
長老
登録日: 2011/10/3
居住地:
投稿: 210
Re: 2.12.1 非会員購入 1つの別納先を指定した際に、配送日時、配送時間帯が2つ表示される
お世話になります。

EC-CUBE2.11系のときと同じ挙動にするなら上記修正でよいと思いますが、あえてshipping_idを1にすることにした意図を理解していないので、正しいのかどうか分かりません。
「shipping_idが0である=お届け先住所と注文主住所が同じである」
が確約されることを意図されていたのであれば、上記修正は意図に逆らっていることになります。

それを考えると、http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=10962&forum=10 の134様の修正が正しいと思われます。

却って混乱を招くような投稿をしてしまい申し訳ありません。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.