質問 > フロント機能 > 特定商品を送料無料にし、同梱商品も一緒に無料にしたい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
masarun |
投稿日時: 2012/12/16 10:12
対応状況: −−−
|
半人前 登録日: 2012/12/16 居住地: 投稿: 13 |
特定商品を送料無料にし、同梱商品も一緒に無料にしたい 初めて投稿させて頂きます。
EC-cube初心者です。 タイトルの通り、 特定の商品を送料無料に設定し、 買い物かごに送料無料商品が含まれている場合、 その同梱商品も全て送料無料に変更したいです。 どういった処理を行えば良いか教えて頂けますでしょうか? 具体的には、商品毎に送料を設定する機能を使って、 ・商品個別送料を「1」にした場合は送料が全て無料になる形に変更 ・その商品がかごに含まれる場合、同梱商品があっても全て送料無料になる形へ変更したいです。 SC_CartSession.phpのfunction calculatを変更すれば良いと思うのですが、 上手くいきません。 送料無料チェックの下に下記のようなコードを付け加えれば可能かと思ったのですが、、 // 送料無料チェック if ($this->isDelivFree($productTypeId)) { $results['deliv_fee'] = 0; } if (OPTION_PRODUCT_DELIV_FEE == 1) { $cartItems = $this->getCartList($productTypeId); foreach ($cartItems as $arrItem) { if ($cartItem['productsClass']['deliv_fee'] == '1'){ $results['deliv_fee'] = 0; } } } 送料のパターンとしては下記の3パターンになります。 1:通常商品のみ=配送業者の送料 2:送料無料商品のみ=送料無料 3:通常商品+送料無料商品=送料無料 以上、宜しく御願いします。 ------------------------------------------------------------------------------------------ [EC-CUBE] EC-CUBE 2.12.1 [レンタルサーバ] KAGOYA [OS] CentOS [PHP] PHP 5.2.17 [データベース] PostgreSQL 8.1.23 [WEBサーバ] Apache [ブラウザ] GoogleCrome23.0.1271.97 ------------------------------------------------------------------------------------------ |
homan |
投稿日時: 2012/12/18 8:19
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい そもそもなのですが
管理画面→システム設定→パラメーター設定で 「OPTION_PRODUCT_DELIV_FEE」はデフォルトで0になってます。 これは1に変更済みですか?
|
masarun |
投稿日時: 2012/12/19 15:11
対応状況: −−−
|
半人前 登録日: 2012/12/16 居住地: 投稿: 13 |
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい 「OPTION_PRODUCT_DELIV_FEE」は1になっています。
そこは確認済みです。 |
homan |
投稿日時: 2012/12/19 16:06
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい なるほど、、
であれば
で、foreachで$arrItemを一時的な変数として割り当ててるのに if文で「$cartItem」を参照しているあたりも怪しいですね。 「$cartItem」がどこで定義されているのかわかりませんが・・ ($cartItem"s"は記述の中にありますが、たぶん$arrItemの間違いでしょうか) $arrItemの中身と$cartItem?の中身をdumpかprint_rで確認したほうが いいかもしれません。 的外れの場合はすみません
|
masarun |
投稿日時: 2012/12/22 12:08
対応状況: −−−
|
半人前 登録日: 2012/12/16 居住地: 投稿: 13 |
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい 引用:
申し訳有りません。 初心者なもので、色々試したのですが変数の確認すら出来ません。 具体的にどのようにすれば宜しいですか? デバッグモードをtrueにして <php SC_Utils::sfPrintR( $arrItem ); ?> をテンプレート内に記載したのですが、何も表示されません。 これはSC_CartSession.php内に記述するべきものなのですか? その場合、確認するためにははどのページを見れば宜しいですか? 質問ばかりで申し訳有りませんが宜しく御願いします。 |
gizmo_s |
投稿日時: 2012/12/22 15:28
対応状況: −−−
|
新米 登録日: 2012/7/18 居住地: 大阪市 投稿: 2 |
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい 質問者様と、同じ仕様にしておりますが、
SC_CartSession.php の 商品ごとの送料を加算の下に以下の記述で対応しています。 if($results['deliv_fee'] == 0 || $results['deliv_fee'] == ""){ // 配送業者の送料を加算 if (OPTION_DELIV_FEE == 1 && !SC_Utils_Ex::isBlank($deliv_pref) && !SC_Utils_Ex::isBlank($deliv_id)) { $results['deliv_fee'] += $this->sfGetDelivFee($deliv_pref, $deliv_id); } } else { $results['deliv_fee'] = 0; }
|
DELIGHT |
投稿日時: 2012/12/22 16:08
対応状況: −−−
|
仙人 登録日: 2010/2/3 居住地: 熊本県・九州・長野県・関東甲信越 投稿: 572 |
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい 引用:
申し訳有りません。 テンプレート内ではPHPをそのまま使うことはできません。 こんな風に書くと見られると思います。 <pre><!--{$arrItem|print_r}--></pre> 又は <pre><!--{$arrItem|var_dump}--></pre>
|
seasoft |
投稿日時: 2012/12/22 18:31
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい 配列の場合、修飾子の前に @ が必要だったような。(未検証)
私のメモ書きですが、参考になると良いのですが・・・ http://seasoft.jp1.cx/ec/tips/smarty
|
homan |
投稿日時: 2012/12/22 18:53
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい masarunさん
変数(というか配列)の確認については他の方のアドバイスをご確認してください。 その確認をしてからか、それより前でもどちらでもよいのですが、
の記述を
にしてみたらどうなりますか?($cartItem→$arrItem)
|
masarun |
投稿日時: 2012/12/24 0:52
対応状況: −−−
|
半人前 登録日: 2012/12/16 居住地: 投稿: 13 |
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい DELIGHT様
seasoft様 ご返信ありがとうございます。 seasoft様のリンク先の記述を試したところ、配列に格納されてる情報を表示することが出来ました。 そちらのサイトは今後も色々と参考にさせて頂ければと思います。 誠にありがとうございました。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |