バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

質問 > 管理機能 > 送料無料条件の金額を2つに分けたい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
usapon
投稿日時: 2017/9/13 5:42
対応状況: −−−
常連
登録日: 2017/3/15
居住地: カンボジア プノンペン
投稿: 42
送料無料条件の金額を2つに分けたい
[EC-CUBE] EC-CUBE3.0.12、新規インストール
[レンタルサーバ] ロリポップ プラン:エンタープライズ
[OS] Linux(CentOS)
[PHP] 5.6(モジュール版)
[データベース] LAA0770755-xm7x42  5.6
[WEBサーバ] Apache
[ブラウザ] Google Chrome バージョン 56.0.2924.87
[導入プラグインの有無] 税抜き表記プラグイン
【送料無料条件の金額を2つに分けたい】
いつもお世話になっております。
9/10に【その他】のフォーラムで質問させていただきましたが、フォーラムの選択が間違っていたのかスレッドが何もなかったため、【管理】のフォーラムで質問させていただきます。
例えば本州・四国へのお届けは、5,500円以上のご注文で送料無料。
北海道・九州・沖縄へのお届けは、10,000円以上のご注文で送料無料。
というような2種類の設定にしたいと思っておりますが、どこをどのように直せばよいのかわかりません。プログラムの知識はほとんどありません。htmlのソースを多少弄る程度のレベルです。
どなたかご教示いただければ大変ありがたく存じます。
nyorai
投稿日時: 2017/9/13 9:48
対応状況: −−−
長老
登録日: 2015/8/21
居住地:
投稿: 158
Re: 送料無料条件の金額を2つに分けたい
プログラムを修正する必要があるので少しむずかしいかもしれませんが、以下のようなカスタマイズで可能かと思います。

送料無料の処理はShoppingServiceで実装されています。
src/Eccube/Service/ShoppingService.php

https://github.com/EC-CUBE/ec-cube/blob/3.0.12/src/Eccube/Service/ShoppingService.php#L676

このクラスの、setDeliveryFreeAmountという関数を修正して、都道府県ごとに送料無料金額を切り替える処理を追加します。


    /**
     * 配送料無料条件(合計金額)の条件を満たしていれば配送料金を0に設定
     *
     * @param Order $Order
     */
    public function setDeliveryFreeAmount(Order $Order)
    {
        // 配送料無料条件(合計金額)
        $deliveryFreeAmount = $this->BaseInfo->getDeliveryFreeAmount();
        if (!is_null($deliveryFreeAmount)) {

            // ▼ここから
            // 都道府県IDを取得
            $prefId = $Order->getPref()->getId();

            // 本州・四国の場合は5500円
            if (in_array($prefId, array(1, 2, 3))) { // 対象の都道府県IDを記述
                $deliveryFreeAmount = 5500;
            // 北海道・九州・沖縄の場合は11000円
            } elseif (in_array($prefId, array(1, 2, 3))) { // 対象の都道府県IDを記述
                $deliveryFreeAmount = 11000;
            }
            // ▲ここまで

            // 合計金額が設定金額以上であれば送料無料
            if ($Order->getSubTotal() >= $deliveryFreeAmount) {
                $Order->setDeliveryFeeTotal(0);
                // お届け先情報の配送料も0にセット
...


in_array($prefId, array(1, 2, 3)の数値の箇所は、対象の都道府県のIDを指定してください。各都道府県IDはマスターデータ管理>mtb_prefで閲覧できます。
usapon
投稿日時: 2017/9/17 8:23
対応状況: −−−
常連
登録日: 2017/3/15
居住地: カンボジア プノンペン
投稿: 42
Re: 送料無料条件の金額を2つに分けたい
早速教えて頂いたのに諸事情によりすぐに作業ができませんでした。申し訳ありませんでした。
お教え通り修正してみました。出来ました。!(^^)!
本当に有り難うございました。<m(__)m>

hata
投稿日時: 2017/9/28 11:07
対応状況: −−−
長老
登録日: 2015/8/3
居住地: 宮城県(2017/09末引退)
投稿: 156
Re: 送料無料条件の金額を2つに分けたい
$prefId = $Order->getPref()だと、注文したひとの情報にならないでしょうか?
質問されたかたが上手くいったということは、その辺を考慮されてお届け先の情報を
取得するようにされたということでしょうかね。

ちょっと気になりました。
nyorai
投稿日時: 2017/10/30 10:41
対応状況: −−−
長老
登録日: 2015/8/21
居住地:
投稿: 158
Re: 送料無料条件の金額を2つに分けたい
> $prefId = $Order->getPref()だと、注文したひとの情報にならないでしょうか?

おっしゃるとおりですね、すみません。。。
実際はお届け先(Shipping)の都道府県を取らないといけないですね。

usapon
投稿日時: 2017/10/30 12:53
対応状況: −−−
常連
登録日: 2017/3/15
居住地: カンボジア プノンペン
投稿: 42
Re: 送料無料条件の金額を2つに分けたい
>> $prefId = $Order->getPref()だと、注文したひとの情報にならないでしょうか?

>おっしゃるとおりですね、すみません。。。
>実際はお届け先(Shipping)の都道府県を取らないといけないですね。

お世話になっております。
上記の記述はどこか直さなければいけないのですか?
nyorai
投稿日時: 2017/10/31 10:08
対応状況: −−−
長老
登録日: 2015/8/21
居住地:
投稿: 158
Re: 送料無料条件の金額を2つに分けたい
複数配送は利用していますか?
利用してなければ、以下の修正で良いかと思います。


            // 都道府県IDを取得
            $prefId = $Order->getPref()->getId();





            // 都道府県IDを取得
            $Shippings = $Order->getShippings();
            $Shipping = $Shippings[0];
            $prefId = $Shipping->getPref()->getId();

usapon
投稿日時: 2017/10/31 13:31
対応状況: −−−
常連
登録日: 2017/3/15
居住地: カンボジア プノンペン
投稿: 42
Re: 送料無料条件の金額を2つに分けたい
お世話になっております。
複数配送は利用していません。
早速実行してみます。
ありがとうございます。
今回、送料無料条件を2つにしたことにより、
「代金引換無料条件」も複数設定したいのですが、現在は5,500円以下は324円、5500円以上は代金引換無料と1つの設定になっています。
追加で10,000円以下は324円、10,000円以上は代金引換無料と設定したいのですが、図々しいお願いで申し訳けありませんが、どうぞ教えてください。(-_-;)
nyorai
投稿日時: 2017/10/31 14:49
対応状況: −−−
長老
登録日: 2015/8/21
居住地:
投稿: 158
Re: 送料無料条件の金額を2つに分けたい
支払い手数料のほうは修正箇所多そうですね。
ぱっと答えられそうにないので、時間取れれば少し調べてみます。
usapon
投稿日時: 2017/10/31 16:16
対応状況: −−−
常連
登録日: 2017/3/15
居住地: カンボジア プノンペン
投稿: 42
Re: 送料無料条件の金額を2つに分けたい
お手数掛けます。
どうぞよろしくお願い申し上げます。<(_ _)>
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

クレジットカード情報の非保持化対応

統計情報

総メンバー数は20,539名です
総投稿数は83,571件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1662
4
yuh
1430
5
red
1076
6
fukap
907
7
shutta
827
8
468
796
9 ramrun 789
10
tsuji
784
11
umebius
721
12
tao_s
651
13 karin 641
14 sumida 638
15
homan
633
16 DELIGHT 571
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© LOCKON CO.,LTD. All Rights Reserved.