バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
usapon
投稿日時: 2017/9/13 5:42
対応状況: −−−
常連
登録日: 2017/3/15
居住地: カンボジア プノンペン
投稿: 38
送料無料条件の金額を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
居住地:
投稿: 140
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
居住地: カンボジア プノンペン
投稿: 38
Re: 送料無料条件の金額を2つに分けたい
早速教えて頂いたのに諸事情によりすぐに作業ができませんでした。申し訳ありませんでした。
お教え通り修正してみました。出来ました。!(^^)!
本当に有り難うございました。<m(__)m>

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

 



ログイン


EC-CUBEペイメント

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

統計情報

総メンバー数は20,136名です
総投稿数は82,934件です

投稿数ランキング

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


ネットショップの壺

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

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