バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 送料無料の際に、北海道・沖縄を無料ではなく値引きをしたい

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
468
投稿日時: 2019/4/1 8:38
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 送料無料の際に、北海道・沖縄を無料ではなく値引きをしたい
支払方法を切り替えた時の処理を確認すると、
配送料については最初から再計算するのではなく、
切替前の送料を利用して処理をしているようですね。
(送料無料判定は処理されているようです。その為、切り替える都度-800円されるのだと思います)
/src/Eccube/Controller/ShoppingController.php 448行目 function payment()

配送業者を変更した時に処理されるfunction delivery()を確認すると配送料をイチから再計算してると思われますので、
383行目~406行目までの記述が参考となりそうです。
($shippings = $data['shippings'];以下の記述)

あと、北海道・沖縄の判定ですが、
{}の数がおかしいと思います。
ここは一度、再確認されたほうがよいかと思います。
提示いただいたソースでは、elseが「合計金額が設定金額以上であれば送料無料 以外」の意味となっており、
設定金額未満の時に送料が常に0になるかと思います。
// 合計金額が設定金額以上であれば送料無料
if ($Order->getSubTotal() >= $deliveryFreeAmount) {
    // 北海道・沖縄
    if (in_array($prefId, array(1,47))) {
        $Shipping->setShippingDeliveryFee($Shipping->getShippingDeliveryFee() - 800);
    }
// それ以外
} else {
    $Order->setDeliveryFeeTotal(0);
    // お届け先情報の配送料も0にセット
    $shippings = $Order->getShippings();
    foreach ($shippings as $Shipping) {
        $Shipping->setShippingDeliveryFee(0);
    }
}


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   送料無料の際に、北海道・沖縄を無料ではなく値引きをしたい rastars 2019/3/29 14:40
   » Re: 送料無料の際に、北海道・沖縄を無料ではなく値引きをしたい 468 2019/4/1 8:38

 



ログイン


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

統計情報

総メンバー数は89,285名です
総投稿数は110,074件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1301
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.