質問 > フロント機能 > 送料設定をご教示ください |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
toshi55 |
投稿日時: 2020/5/8 14:24
対応状況: −−−
|
新米 登録日: 2017/12/28 居住地: 投稿: 10 |
送料設定をご教示ください [EC-CUBE]2.13.5
●商品A 個数分の送料が必要 (例)1個1,000円→5個購入だと5,000円 ●商品B 送料無料 下記のように同時購入した場合、カート内での計算が上手くいかず悩んでいます。 ●商品A ×3 ●商品B ×10 (現状)送料13,000円(商品Bも個数にカウントされてしまう) (希望)送料3,000円(商品Bは送料無料のため、カウントしたくない) おそらく下記を修正すれば良いというのは理解しているのですが、 具体的にどのように修正すれば良いのか初心者のため分からず・・ data/class/SC_Cartsession.php どなたかご教示頂けますと幸いです。 |
468 |
投稿日時: 2020/5/8 22:41
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 送料設定をご教示ください 商品別送料の機能をご利用中なのでしょうか?
それとも1個1,000円というロジックをカスタマイズされているのでしょうか? 商品別送料の機能を使っているのであれば、 商品Bの送料に0円を設定すれば良いのではないかと思うのですが如何でしょうか? あと、1個1,000円というのは全国一律ですか?
|
toshi55 |
投稿日時: 2020/5/9 0:25
対応状況: −−−
|
新米 登録日: 2017/12/28 居住地: 投稿: 10 |
Re: 送料設定をご教示ください 返信ありがとうございます。
商品別送料の機能は使用しておりません。 個数に応じて送料を計算するようにWEBで自分なりに検索し、ソースを修正しております。 ※配送料登録をした送料を、購入個数分掛けています ▼現在のソース // 商品ごとの送料を加算 if (OPTION_PRODUCT_DELIV_FEE == 1) { $cartItems = $this->getCartList($productTypeId); foreach ($cartItems as $arrItem) { $results['deliv_fee'] += $arrItem['productsClass']['deliv_fee'] * $arrItem['quantity']; } } // 配送業者の送料を加算 if (OPTION_DELIV_FEE == 1 && !SC_Utils_Ex::isBlank($deliv_pref) && !SC_Utils_Ex::isBlank($deliv_id)) { $cartItems = $this->getCartList($productTypeId); foreach ($cartItems as $arrItem) { $results['deliv_fee'] += SC_Helper_Delivery_Ex::getDelivFee($deliv_pref, $deliv_id) * $arrItem['quantity']; } } // 送料無料チェック if ($this->isDelivFree($productTypeId)) { $results['deliv_fee'] = 0; } 素人なので本当に困っています。。 雑な質問にお付き合いいただき大変恐縮です。 |
468 |
投稿日時: 2020/5/9 10:43
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 送料設定をご教示ください 2つ目の
foreach ($cartItems as $arrItem) { } のところで if文を追加して商品Aの時だけ送料を計算、もしくは商品Bだけ送料の計算をスキップするようにすれば良いのではないでしょうか? ループ内で $arrItem['productsClass']['product_id']で商品IDは取得できるかと思います。 商品数が多い場合、商品IDで判定するのは難しいと思いますが 送料の有料・無料はどのような条件なのでしょうか?
|
toshi55 |
投稿日時: 2020/5/15 11:14
対応状況: −−−
|
新米 登録日: 2017/12/28 居住地: 投稿: 10 |
Re: 送料設定をご教示ください 返信に時間がかかってしまい申し訳ありません。。
色々やってみたのですがやはり解決しておりません。 現在の仕様は、下記サイトを参考にデフォルトのソースをカスタマイズしています。 http://memo.koubousya.jp/contents/224 ★現在のソース (※商品送料はNullで、配送業者の送料を使用しています) // 配送業者の送料を加算 if (OPTION_DELIV_FEE == 1 && !SC_Utils_Ex::isBlank($deliv_pref) && !SC_Utils_Ex::isBlank($deliv_id)) { $cartItems = $this->getCartList($productTypeId); foreach ($cartItems as $arrItem) { $results['deliv_fee'] += SC_Helper_Delivery_Ex::getDelivFee($deliv_pref, $deliv_id) * $arrItem['quantity']; } } |
468 |
投稿日時: 2020/5/15 12:21
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 送料設定をご教示ください 前の投稿でも回答しましたがループの中で商品を判定する形になるのではないでしょうか?
foreach ($cartItems as $arrItem) { ******ここで商品Aかどうかを判定****** $results['deliv_fee'] += SC_Helper_Delivery_Ex::getDelivFee($deliv_pref, $deliv_id) * $arrItem['quantity']; } $results['deliv_fee'] += SC_Helper_Delivery_Ex::getDelivFee($deliv_pref, $deliv_id) * $arrItem['quantity']; の1行をスキップすれば送料は加算されないと思います。
|
toshi55 |
投稿日時: 2020/5/15 12:54
対応状況: −−−
|
新米 登録日: 2017/12/28 居住地: 投稿: 10 |
Re: 送料設定をご教示ください 試しにご指摘の一行だけ消してみて、商品Aを2つカートに入れてみましたが、
送料が0円になってしまいます。。。 ※本来は個数分の送料が必要 複雑な質問で申し訳ありません。 以前、違うスレで同様の質問をされている方がいましたので参考に見てみましたが、最終的にどのように解消されたのか分かりませんでした。 https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=16112&forum=10 |
468 |
投稿日時: 2020/5/16 12:20
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 送料設定をご教示ください 上手く意図が伝わってなかったのであれば、申し訳ないのですが
判定を行うというのは、if文を使って判断させるという意味になります。 送料を加算したい時は $results['deliv_fee'] += SC_Helper_Delivery_Ex::getDelivFee($deliv_pref, $deliv_id) * $arrItem['quantity']; を通るようにして 加算したくない時は $results['deliv_fee'] += SC_Helper_Delivery_Ex::getDelivFee($deliv_pref, $deliv_id) * $arrItem['quantity']; をスキップさせるようにするという意味です。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |