質問 > 管理機能 > 一部商品のみ送料を設定したいが反映されません |
管理機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
vity78 |
投稿日時: 2015/6/10 14:36
対応状況: −−−
|
新米 登録日: 2015/6/10 居住地: 投稿: 8 |
Re: 【追記有】一部商品のみ送料を設定したいが反映されません yuh様
ありがとうございました。 教えて頂いた箇所を削除してうまく計算されるようになりました。 |
yuh |
投稿日時: 2015/6/10 14:28
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 【追記有】一部商品のみ送料を設定したいが反映されません * $item['quantity']
を消せばいいと思います。 |
vity78 |
投稿日時: 2015/6/10 13:58
対応状況: −−−
|
新米 登録日: 2015/6/10 居住地: 投稿: 8 |
【追記有】一部商品のみ送料を設定したいが反映されません tsuji様
ありがとうございます。 教えて頂いた部分を入れ替えたところ、望んでいた通りに変更できました。 【追記】 教えて頂いた通りに順番を入れ替えたところ、送料が反映されるようになりましたが、いろいろ試していたところ、送料を設定した商品を例えば2つ購入すると送料も2個分で表示されていました。 この際、送料は1個分で計算したいのですが、どこをどういじれば良いのでしょうか。 よろしくお願い致します。 |
tsuji |
投稿日時: 2015/6/10 13:13
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 一部商品のみ送料を設定したいが反映されません vity78 様
> 目的「一部商品のみ送料を設定したい」 > 現状、一定購入金額以上であれば送料が無料になる設定をしています。 > ですが、個別に送料を設定しても反映されません。 > お手数をおかけしますが、下記内容からどのように変更すれば一部商品にのみ送料を発生させることができるか教えて頂ければ幸いです。 これは、送料無料になった場合、商品ごとに設定した送料は無料とはならず 送料に加算されていてほしいということでしょうか? ソースコードを見ると下記の順で送料計算を行っています。 1. 商品ごとの送料加算 2. 配送業者の送料加算 3. 送料無料の計算 この手順だと送料無料の条件を満たすと送料が0円になります。 これを下記の順に変えるなら 1. 配送業者の送料加算 2. 送料無料の計算 3. 商品ごとの送料加算 商品ごとの送料加算は残る形になります。
|
vity78 |
投稿日時: 2015/6/10 10:45
対応状況: −−−
|
新米 登録日: 2015/6/10 居住地: 投稿: 8 |
一部商品のみ送料を設定したいが反映されません EC-CUBEバージョン「2.11.5」
PHPバージョン「PHP 5.2.17p3」 DBバージョン「MySQL 5.0.67-log」 目的「一部商品のみ送料を設定したい」 現状、一定購入金額以上であれば送料が無料になる設定をしています。 ですが、個別に送料を設定しても反映されません。 送料の部分は「SC_CartSession」にて沖縄と北海道のみ10000円以上で送料が無料になるという風にしているようです。 ただ、以前の管理者はもうおらず、誰も触ることがなかったEC-CUBEを急遽触ることになった為、1人では調べても把握しきれませんでした。 お手数をおかけしますが、下記内容からどのように変更すれば一部商品にのみ送料を発生させることができるか教えて頂ければ幸いです。 よろしくお願い致します。 【設定内容】 SHOPマスターの「送料無料条件」を「5400」円以上購入時に無料に設定 パラメーターの「OPTION_PRODUCT_DELIV_FEE」を「1」にして有効に設定 ※上記設定から商品登録ページから個別に送料を設定しても反映されませんでした。 【送料部分のコード】 function calculate($productTypeId, &$objCustomer, $use_point = 0, $deliv_pref = "", $charge = 0, $discount = 0, $deliv_id = 0) { $objDb = new SC_Helper_DB_Ex(); $total_point = $this->getAllProductsPoint($productTypeId); $results['tax'] = $this->getAllProductsTax($productTypeId); $results['subtotal'] = $this->getAllProductsTotal($productTypeId); $results['deliv_fee'] = 0; // 商品ごとの送料を加算 if (OPTION_PRODUCT_DELIV_FEE == 1) { $cartItems = $this->getCartList($productTypeId); foreach ($cartItems as $item) { $results['deliv_fee'] += $item['productsClass']['deliv_fee'] * $item['quantity']; } } // 配送業者の送料を加算 if (OPTION_DELIV_FEE == 1 && !SC_Utils_Ex::isBlank($deliv_pref) && !SC_Utils_Ex::isBlank($deliv_id)) { $results['deliv_fee'] += $objDb->sfGetDelivFee($deliv_pref, $deliv_id); } //mod start 20120817 送料計算 //北海道と沖縄は、購入金額10,000円未満は送料1,500円、以上は送料無料 //沖縄と北海道以外は購入金額5,000円未満で送料500円、以上は送料無料 switch ($deliv_pref[0]) { case 1: //北海道 case 47: //沖縄 if (($results['subtotal']) > 10000) { $results['deliv_fee'] = 0; } break; default: // 他 if ($this->isDelivFree($productTypeId)) { $results['deliv_fee'] = 0; } } // 送料無料チェック //if ($this->isDelivFree($productTypeId)) { // $results['deliv_fee'] = 0; //} //mod end 20120817 送料計算 // 合計を計算 $results['total'] = $results['subtotal']; $results['total'] += $results['deliv_fee']; $results['total'] += $charge; $results['total'] -= $discount; // お支払い合計 $results['payment_total'] = $results['total'] - $use_point * POINT_VALUE; // 加算ポイントの計算 if (USE_POINT !== false) { $results['add_point'] = SC_Helper_DB_Ex::sfGetAddPoint($total_point, $use_point); if($objCustomer != "") { // 誕生日月であった場合 if($objCustomer->isBirthMonth()) { $results['birth_point'] = BIRTH_MONTH_POINT; $results['add_point'] += $results['birth_point']; } } if($results['add_point'] < 0) { $results['add_point'] = 0; } } return $results; } 〜略〜 } |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |