バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 合計金額によって利用可能な配送方法を制限したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tacky14
投稿日時: 2022/9/14 18:45
対応状況: −−−
半人前
登録日: 2021/4/23
居住地:
投稿: 16
合計金額によって利用可能な配送方法を制限したい
[EC-CUBE] 4.0.6-p1
[サーバ] AWS
[OS] Linux
[PHP] 7.4.21
[データベース] MySQL 5.5.68-MariaDB
[WEBサーバ] Apache/2.4.48
[カスタマイズの有無] 有


注文時、商品の合計金額(Order.subtotal)が10000円以上の場合のみ利用可能な配送方法を追加したいです。


配送方法マスタで「宅配便A」「宅配便B」の2種類を設定、どちらも支払い方法と都道府県別送料は同じです。

-------------------------------------------------------
「宅配便A」は条件なしで利用可能。デフォルトの配送方法。
「宅配便B」は商品合計(送料、値引きを含まない)10,000円以上の場合のみ利用可能。
10,000円未満では
・「宅配便B」が選択不可か選択肢に表示されない
・「宅配便B」を選んでもバリデーションで弾かれる
一度「宅配便B」を選択してから商品を減らし条件適用外となった場合は、自動で適用可能な配送方法をセットし直す(今回の場合は「宅配便A」)
-------------------------------------------------------
としたいです。


[試したこと]
金額条件で「宅配便B」を弾くことは、FormTypeに追記して行うことができました。
ただ、それだけでは条件適用外で自動でセットし直す要件を満たせませんでした。

FormTypeの実装は以下のように行いました。

Form\Type\Shopping\ShippingTypeで「宅配便B」&&10,000円未満 を条件にaddErrorを付与。
// POSTされないデータをエンティティにセットする.
        // TODO PurchaseFlow で行うのが適切.
        $builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
            /** @var Shipping $Shipping */
            $Shipping = $event->getData();
            $form = $event->getForm();
            /** @var Delivery $Delivery */
            $Delivery = $form['Delivery']->getData();
            if($Delivery->getId() == {宅配便BのID} && $Shipping->getOrder()->getSubtotal() < 10000) {
                $form['Delivery']->addError(new FormError('この配送方法は使用できません'));
            }



[実現したいこと]
配送方法が条件適用外となった場合は、自動で適用可能な配送方法をセットし直したい。

イメージとしては、
配送方法を変更した際に、変更先の配送方法が使用できない支払方法を選択していた場合、自動的に変更先で使用できる支払方法が選択される仕様になっていると思います。
これを、配送方法自体でも行いたいと考えています。


purchaseflowの仕組みの中で制限が行えればスマートかな、と思うのですが。。
理解が足りておらず、拙いご説明で恐縮ですが、何卒よろしくお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン



統計情報

総メンバー数は75,589名です
総投稿数は104,516件です

投稿数ランキング

1
seasoft
7333
2
468
3217
3
AMUAMU
2712
4
nanasess
2202
5
umebius
2085
6
yuh
1664
7
red
1547
8
h_tanaka
1189
9
tsuji
942
10
fukap
907
11
shutta
835
12
tao_s
794
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.