質問 > その他 > PurchaseFlow\ProcessorのDeliveryFeeを高いの1個だけを選択 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
NODOKA |
投稿日時: 2019/3/2 21:41
対応状況: 解決済
|
常連 登録日: 2018/4/25 居住地: 投稿: 31 |
PurchaseFlow\ProcessorのDeliveryFeeを高いの1個だけを選択 ▼テンプレート
[EC-CUBE] 4.1 [レンタルサーバ] XAMPP [OS] Win10 [PHP] 7.1 [導入プラグインの有無] 無し [カスタマイズの有無] 無し [現象] PurchaseFlow\Processorの中でDeliveryFeeが都道府県別送だと思うのですが、商品が2個以上カートに入った時にそれぞれの送料が合計されてしまうので、一番高い都道府県別送料1個だけを適用したいのですが、方法がわかりません。教えて頂けると助かります。商品別送料は設定しておりません。お手数ですがよろしくお願いいたします。 |
tao_s |
投稿日時: 2019/3/4 12:43
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 796 |
Re: PurchaseFlow\ProcessorのDeliveryFeeを高いの1個だけを選択 商品別送料を設定していなければ、そういった挙動にはならなかった気がするのですが...
とりあえず一番高いのだけという事であれば、 https://github.com/EC-CUBE/ec-cube/blob/24d3dde6b4289509d05e1697323757d014927fb4/src/Eccube/Service/PurchaseFlow/PurchaseFlow.php#L306 で商品毎に送料を足してるループで、それぞれ送料を比較してあげれば良いと思います。 PurchaseFlowのいじり方については、ちょうどこの前の東京ユーザグループの勉強会でやったので、見てみてください。 https://www.slideshare.net/chihiroadachi3/201927-eccubeugpurchaseflow-130874190?fbclid=IwAR0i9dn-CahYEpTGvWf2cBWEPSmOw5WAnP5EVM2QDzZI_sNBLBXNN4wLQ8Q サンプルコード: https://github.com/chihiro-adachi/ec-cube/compare/ad03d2d0078f8347c0a8fae9acc1ced74bf6e967...demo-tokyo?fbclid=IwAR2oNfFG9ZhsYD6wyqChVy5pY8FOdCmFYqfVhFFOJZHBm7TeOM-3RQUeMOs
|
umebius |
投稿日時: 2019/3/4 13:28
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: PurchaseFlow\ProcessorのDeliveryFeeを高いの1個だけを選択 NODOKA様
おっしゃっているのはお届け先が複数の場合に、それぞれの送料が合計されるということでしょうか? それを最大の送料だけ有効にしたいと。 それでしたら色々と方法はありますが src/Eccube/Service/PurchaseFlow/Processor/DeliveryFeePreprocessor.php のあたりで、どの配送(Shipping)が送料最大になるか判定して取捨選択すれば良いのではないかと思います。 どのShippingが都道府県別送料最大かは下記のようなコードでわかると思います。
|
NODOKA |
投稿日時: 2019/3/6 16:14
対応状況: −−−
|
常連 登録日: 2018/4/25 居住地: 投稿: 31 |
Re: PurchaseFlow\ProcessorのDeliveryFeeを高いの1個だけを選択 tao_s 様
早速のご返信ありがとうございます。 商品送料は設定していないのですが、商品種別を設定して異なる商品種別の商品でも同じカートに入るようにしました。その時に異なる種別の送料が合計されてしまうという状況です。 色々な情報をありがとうございます。参考にして、頑張ってみます。 |
NODOKA |
投稿日時: 2019/3/6 16:22
対応状況: −−−
|
常連 登録日: 2018/4/25 居住地: 投稿: 31 |
Re: PurchaseFlow\ProcessorのDeliveryFeeを高いの1個だけを選択 umebius 様
早速のご返信ありがとうございます。 教えて頂いたコードをはめてみたところ、カートのお届け先2の送料×個数という送料になってしまいました。お届け先2の方が安い送料でもそちらが選択されてしまうという状況です。 でもとても参考になりました。ありがとうございます。もう少し研究してみます。 |
NODOKA |
投稿日時: 2019/3/12 16:04
対応状況: −−−
|
常連 登録日: 2018/4/25 居住地: 投稿: 31 |
Re: PurchaseFlow\ProcessorのDeliveryFeeを高いの1個だけを選択 度々で申し訳ございません。
商品種別をA・Bを設定して、Aの送料、Bの送料を設定しています。商品種別の違う商品が一緒にカートに入るようにしてあります。 その時にお届け先1とお届け先2の送料が合計されてしまいます。 これを高いほうの送料だけ1個を選択したいのですが、わかりません。 せっかくのご返信を頂いたのですが、自分の力不足です。 分かる方いらっしゃいましたら、教えて頂けると助かります。 お届け先ごとの送料を合計している場所がよく分かりません。 よろしくお願いいたします。 |
umebius |
投稿日時: 2019/3/12 18:32
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: PurchaseFlow\ProcessorのDeliveryFeeを高いの1個だけを選択 SaleTypeCartAllocatorを使って商品種別が違っても同時に購入できるようにしているということですかね?
上のコメントの件なのですが、 こんなコードで実現できませんか?
私の方では複数商品種別でも最大の送料だけが採用されているようです。
|
NODOKA |
投稿日時: 2019/3/18 11:57
対応状況: −−−
|
常連 登録日: 2018/4/25 居住地: 投稿: 31 |
Re: PurchaseFlow\ProcessorのDeliveryFeeを高いの1個だけを選択 umebius 様
ありがとうございます。 無事に出来ました!!本当に助かりました。ありがとうございます。 やりたい事ピンポイントでとても分かりやすかったです。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |