バージョン選択

フォーラム

メニュー

オンライン状況

28 人のユーザが現在オンラインです。 (18 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 28
もっと...

サイト内検索

質問 > フロント機能 > 特定商品を送料無料にし、同梱商品も一緒に無料にしたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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に変更済みですか?


----------------
このコミュニティでの投稿はボランティアの範囲に留めさせていただいています。個別の相談やカスタマイズは有償にて承っておりますのでご相談下さい。

[url=http://www.eccube-school.jp/]EC-CUBE

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 ($cartItems as $arrItem) {
    if ($cartItem['productsClass']['deliv_fee'] == '1'){ 
        $results['deliv_fee'] = 0;
    }
}


で、foreachで$arrItemを一時的な変数として割り当ててるのに
if文で「$cartItem」を参照しているあたりも怪しいですね。
「$cartItem」がどこで定義されているのかわかりませんが・・
($cartItem"s"は記述の中にありますが、たぶん$arrItemの間違いでしょうか)

$arrItemの中身と$cartItem?の中身をdumpかprint_rで確認したほうが
いいかもしれません。

的外れの場合はすみません


----------------
このコミュニティでの投稿はボランティアの範囲に留めさせていただいています。個別の相談やカスタマイズは有償にて承っておりますのでご相談下さい。

[url=http://www.eccube-school.jp/]EC-CUBE

masarun
投稿日時: 2012/12/22 12:08
対応状況: −−−
半人前
登録日: 2012/12/16
居住地:
投稿: 13
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい
引用:

$arrItemの中身と$cartItem?の中身をdumpかprint_rで確認したほうが
いいかもしれません。


申し訳有りません。
初心者なもので、色々試したのですが変数の確認すら出来ません。
具体的にどのようにすれば宜しいですか?

デバッグモードを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;
}


----------------
[EC-CUBE] 2.12.2正式版
[レンタルサーバ] kagoyaサーバー
[OS] Linux
[PHP] PHP 5.4.3
[データベース] PostgreSQL 8.1.21
[WEBサーバ] apache

DELIGHT
投稿日時: 2012/12/22 16:08
対応状況: −−−
仙人
登録日: 2010/2/3
居住地: 熊本県・九州・長野県・関東甲信越
投稿: 572
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい
引用:
申し訳有りません。
初心者なもので、色々試したのですが変数の確認すら出来ません。
具体的にどのようにすれば宜しいですか?


テンプレート内ではPHPをそのまま使うことはできません。
こんな風に書くと見られると思います。
<pre><!--{$arrItem|print_r}--></pre>
又は
<pre><!--{$arrItem|var_dump}--></pre>


----------------
+ DAISY inc. -------------------- +
EC-CUBE構築・カスタマイズサービス
EC・WEB構築などお気軽にご相談ください。

デイジー株式会社
http://daisy.link/

seasoft
投稿日時: 2012/12/22 18:31
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい
配列の場合、修飾子の前に @ が必要だったような。(未検証)

私のメモ書きですが、参考になると良いのですが・・・
http://seasoft.jp1.cx/ec/tips/smarty


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

homan
投稿日時: 2012/12/22 18:53
対応状況: −−−
仙人
登録日: 2007/7/2
居住地: 宮崎県宮崎市
投稿: 633
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい
masarunさん

変数(というか配列)の確認については他の方のアドバイスをご確認してください。

その確認をしてからか、それより前でもどちらでもよいのですが、
if ($cartItem['productsClass']['deliv_fee'] == '1'){


の記述を

if ($arrItem['productsClass']['deliv_fee'] == '1'){


にしてみたらどうなりますか?($cartItem→$arrItem)


----------------
このコミュニティでの投稿はボランティアの範囲に留めさせていただいています。個別の相談やカスタマイズは有償にて承っておりますのでご相談下さい。

[url=http://www.eccube-school.jp/]EC-CUBE

masarun
投稿日時: 2012/12/24 0:52
対応状況: −−−
半人前
登録日: 2012/12/16
居住地:
投稿: 13
Re: 特定商品を送料無料にし、同梱商品も一緒に無料にしたい
DELIGHT様
seasoft様

ご返信ありがとうございます。
seasoft様のリンク先の記述を試したところ、配列に格納されてる情報を表示することが出来ました。

そちらのサイトは今後も色々と参考にさせて頂ければと思います。
誠にありがとうございました。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,493名です
総投稿数は110,103件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1655
8
red
1570
9
mcontact
1307
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.