質問 > フロント機能 > 送料計算のカスタマイズ |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
aiue |
投稿日時: 2011/12/20 19:29
対応状況: −−−
|
新米 登録日: 2011/12/20 居住地: 投稿: 6 |
送料計算のカスタマイズ EC-CUBE 2.11.3
DBサーバー MySQL 5.5.8 PHP 5.3.5 送料計算のカスタマイズについてお尋ねします。 送料無料商品を設定しており、それ以外の商品はお買い上げ合計金額により送料を設定しています。 送料無料商品のみの時は送料無料、合計金額10000円未満で、通常商品と送料無料商品が両方ある場合は、通常商品の合計金額のみによって送料を設定、両方合わせて合計10000円以上の時は送料無料にしています。 個別商品送料を有効にし、 送料無料商品の送料を1円に設定。(0円だと全て送料0円になってしまう=空白も0と認識している?)し、 SC_CartSession.phpの function calculateに以下のコードを加えましたが、うまくいきません。 $results['subtotal_muryou']を設定し、送料無料商品の価格を取得して、それを全体の合計金額から引いて送料を出そうとしています。 いろいろ試したところ、 if ($item['productsClass']['deliv_fee'] == 1){のところがよくないのか、と思いましたが、 PHP初心者のためどう直せばよいのか、わかりません。 申し訳ありませんが、 どこを直せばよいかご教示いただける方がいらっしゃいましたら お願いいたします。 $results['subtotal_muryou'] = 0; // 商品ごとの送料を加算 // 商品ごとの送料を加算 if (OPTION_PRODUCT_DELIV_FEE == 1) { $cartItems = $this->getCartList($productTypeId); foreach ($cartItems as $item) { if ($item['productsClass']['deliv_fee'] == 1) { $results['subtotal_muryou'] += $item['productsClass']['price02'] * $item['quantity']; } } } if ($results['subtotal']-$results['subtotal_muryou'] == 0) { $results['deliv_fee'] = 0; } elseif ($results['subtotal'] >=10000) { $results['deliv_fee'] = 0; } elseif ($results['subtotal']-$results['subtotal_muryou']<10000 && $results['subtotal']-$results['subtotal_muryou']>5000) { $results['deliv_fee'] = *00; } else { $results['deliv_fee'] = *00; } |
pingpong |
投稿日時: 2011/12/21 9:17
対応状況: −−−
|
長老 登録日: 2011/12/15 居住地: 投稿: 156 |
Re: 送料計算のカスタマイズ 具体的にどの条件の場合にどのように動作しないか教えていただけますか。
subtotalは税込み金額が入ったと思いますので、 $results['subtotal']-$results['subtotal_muryou'] が一致することはないはずです。 あと商品ごとの送料設定を有効にしていますか? |
aiue |
投稿日時: 2011/12/21 10:25
対応状況: −−−
|
新米 登録日: 2011/12/20 居住地: 投稿: 6 |
Re: 送料計算のカスタマイズ ご返信ありがとうございます!
税額を0%にして、価格に税込金額をそのまま入力しているので、$results['subtotal']-$results['subtotal_muryou']は一致します。 商品ごとの送料設定は有効にしています。 送料無料にしたい商品の送料を0円にすると、全ての商品が送料0円になってしまいました。空白も0と認識しているのかな?と思い、 無料にしたい商品の送料を1円にすると、 foreachのif ($item['productsClass']['deliv_fee'] == 1) のところが無視され、送料0円にならず、合計金額ごとの送料が表示されてしまいます。 ここでゆき詰まってしまっております。。 |
pingpong |
投稿日時: 2011/12/21 10:50
対応状況: −−−
|
長老 登録日: 2011/12/15 居住地: 投稿: 156 |
Re: 送料計算のカスタマイズ 私の環境では正常に動作していますね。
(バージョン2.11.4です)。 比較しようとしている値が文字列と数字の比較だからかもしれないですね。phpだと気にしなくても大丈夫だと思うのですが。 一度比較しようとしている配列の値を数字に変換したらどうでしょうか? 何円の商品(そのうち無料商品があれば)を購入すると、判定文のどの処理が実行されますか? |
aiue |
投稿日時: 2011/12/21 12:37
対応状況: −−−
|
新米 登録日: 2011/12/20 居住地: 投稿: 6 |
Re: 送料計算のカスタマイズ 試していただき、ありがとうございます!
そうですか。。なぜだめなのか。。 if ($item['productsClass']['deliv_fee'] == 1 ですと、 送料1円に設定した商品4000円の送料は、elseの値が表示されます。 if ((int)$item['productsClass']['deliv_fee'] == 1 にしても同じです。 if ($item['productsClass']['deliv_fee'] == 0 ですと、 全ての商品が0円になります。。 |
aiue |
投稿日時: 2011/12/22 10:21
対応状況: 解決済
|
新米 登録日: 2011/12/20 居住地: 投稿: 6 |
Re: 送料計算のカスタマイズ 無事解決しました。
規格を2つ設定し、送料をあとから1円に設定したためか、データベースの方を確認したところ、NULLになっている欄がありました。このため、動作しなかったのだと思います。データベースに直接直したところ、無事動作するようになりました。 コードは間違っていないことがわかり、本当に助かりました。 pingpongさん、ありがとうございました! |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |