送料が無料になる商品を設定したいのですが、

困った時はこちらで質問してください。回答を担当する人は特に決まっていませんので、分かる方は回答をお願いします。
アバター
YAMADA
記事: 118
登録日時: 2008/2/14 19:37

送料が無料になる商品を設定したいのですが、

投稿記事by YAMADA » 2008/3/30 12:43

いつもお世話になります。

ある商品を購入すると、カートに入っている商品全てが送料無料になるように設定したいのですが、可能でしょうか?

色々とそれらしき配送モジュールをインストールをしてみたりしていますが、
その商品だけの時にしか送料無料にならず、他の商品も混ざっていると
通常の送料になってしまいます。

※一応、3万円以上は送料無料に設定していますが、その金額以下でも特別商品を購入すると、送料無料にしたいのです。

どなたか、ご存知の方がいらっしゃいましたら、教えてください。
どうぞよろしくお願いいたします。
Zen Cart 1.3.0.2-l10n-jp-3
サーバOS: FreeBSD 5.5
データベース: MySQL 4.1.12
PHP バージョン: 5.2.5

--------------------------------------
ミリタリーショップ
http://nangoku100katen.com/
--------------------------------------
アバター
kb1
記事: 23
登録日時: 2007/10/03 03:16

例えば・・

投稿記事by kb1 » 2008/4/01 01:43

YAMADAさん wrote:
ある商品を購入すると、カートに入っている商品全てが送料無料になるように設定したい


:idea: 「includes/templates/template_default/templates/tpl_checkout_shipping_default.php」の先頭に以下のコードを貼り付けてみてください。

コード: 全て選択

<?php

  // 1つでも送料無料商品が含まれていれば、今回の注文はすべて送料無料となるようにカスタマイズします。
  // 「配送料無料(freeshipper)」モジュールをインストールする必要あり
   if ($_SESSION['cart']->free_shipping_items() > 0) {
      $quotes = array();
      $quotes[] = $GLOBALS['freeshipper']->quote();
   }     

?>



:idea: また、以下のような方法もあるようです。

http://zen-cart.jp/bbs/viewtopic.php?t=3515&start=0&postdays=0&postorder=asc&highlight=A
God helps them who help themselves.
アバター
YAMADA
記事: 118
登録日時: 2008/2/14 19:37

どうもありがとうございます。

投稿記事by YAMADA » 2008/4/01 02:30

kb1様

どうもありがとうございます、
早速、自分のテンプレートにコードを追加しまして
配送料無料(freeshipper)」モジュールもインストールして、日本に適応しましたが

ショッピングカートにて、無事送料無料にはなりましたが、
どうしても注文手続きへ進みません。

他にも何か原因は分かりますでしょうか?

どうぞよろしくお願いいたします。
Zen Cart 1.3.0.2-l10n-jp-3
サーバOS: FreeBSD 5.5
データベース: MySQL 4.1.12
PHP バージョン: 5.2.5

--------------------------------------
ミリタリーショップ
http://nangoku100katen.com/
--------------------------------------
アバター
kb1
記事: 23
登録日時: 2007/10/03 03:16

要検証

投稿記事by kb1 » 2008/4/01 03:26

YAMADAさん wrote:
ショッピングカートにて、無事送料無料にはなりましたが、
どうしても注文手続きへ進みません。


すいません・・簡単にはいかないようですネ・・ :cry:
前のコードは削除して下さい。。。m(__)m


:idea: 「includes/functions/functions_general.php」の1246行目あたりにある
「function zen_get_shipping_enabled」を以下のように変更するとうまくいくかもしれません。


////
// enable shipping
function zen_get_shipping_enabled($shipping_module) {
global $PHP_SELF, $cart, $order;

// for admin always true if installed
if (strstr($PHP_SELF, FILENAME_MODULES)) {
return true;
}

$check_cart_free = $_SESSION['cart']->in_cart_check('product_is_always_free_shipping','1');
$check_cart_cnt = $_SESSION['cart']->count_contents();
$check_cart_weight = $_SESSION['cart']->show_weight();

switch(true) {
// for admin always true if installed
case (strstr($PHP_SELF, FILENAME_MODULES)):
return true;
break;
// Free Shipping when 0 weight - enable freeshipper - ORDER_WEIGHT_ZERO_STATUS must be on
case (ORDER_WEIGHT_ZERO_STATUS == '1' and ($check_cart_weight == 0 and $shipping_module == 'freeshipper')):
return true;
break;
// Free Shipping when 0 weight - disable everyone - ORDER_WEIGHT_ZERO_STATUS must be on
case (ORDER_WEIGHT_ZERO_STATUS == '1' and ($check_cart_weight == 0 and $shipping_module != 'freeshipper')):
return false;
break;
// case (($_SESSION['cart']->free_shipping_items() == $check_cart_cnt) and $shipping_module == 'freeshipper'):
case (($_SESSION['cart']->free_shipping_items() > 0 ) and $shipping_module == 'freeshipper'):
return true;
break;
//case (($_SESSION['cart']->free_shipping_items() == $check_cart_cnt) and $shipping_module != 'freeshipper'):
case (($_SESSION['cart']->free_shipping_items() > 0 ) and $shipping_module != 'freeshipper'):
return false;
break;
// Always free shipping only true - enable freeshipper
//case (($check_cart_free == $check_cart_cnt) and $shipping_module == 'freeshipper'):
case (($_SESSION['cart']->free_shipping_items() > 0 ) and $shipping_module == 'freeshipper'):
return true;
break;
// Always free shipping only true - disable everyone
//case (($check_cart_free == $check_cart_cnt) and $shipping_module != 'freeshipper'):
case (($_SESSION['cart']->free_shipping_items() > 0 ) and $shipping_module != 'freeshipper'):
return false;
break;
// Always free shipping only is false - disable freeshipper
//case (($check_cart_free != $check_cart_cnt) and $shipping_module == 'freeshipper'):
case (($_SESSION['cart']->free_shipping_items() == 0 ) and $shipping_module == 'freeshipper'):
return false;
break;
default:
return true;
break;
}
}





:!: コードを追い切れていないので、もう少し検証する必要があります。
God helps them who help themselves.
アバター
YAMADA
記事: 118
登録日時: 2008/2/14 19:37

どうもありがとうございます。

投稿記事by YAMADA » 2008/4/01 04:34

kb1様

遅くから本当に
どうもありがとうございますm(_ _)m

送料無料モジュールはインストールしたままで、
コードを書き換えましたら、送料無料に出来ました!

しかし、代引きを選択しますと、代金引換手数料が10円(通常は780円)となってしまいます。

配送モジュールや支払いモジュールを確認しましたが、それらしい設定は見つかりませんでした。

すみませんが、どうぞよろしくお願いいたします。
Zen Cart 1.3.0.2-l10n-jp-3
サーバOS: FreeBSD 5.5
データベース: MySQL 4.1.12
PHP バージョン: 5.2.5

--------------------------------------
ミリタリーショップ
http://nangoku100katen.com/
--------------------------------------
アバター
YAMADA
記事: 118
登録日時: 2008/2/14 19:37

無事出来ました!

投稿記事by YAMADA » 2008/4/01 05:09

kb1様

どうもありがとうございますm(_ _)m
無事出来ました!

先ほどの代引き手数料10円の件も、過去ログで
要点は、配送モジュールで freeshipper を True にする(コスト手数料ともにゼロに設定)

注文合計モジュールの代金引換手数料で 上から6番目くらいの
COD Fee for Free Shipping Module - (freeshipper) を00:315 とする。

こうしないと CA:4.50,US:3.00,00:9.99 が生きていて
送料無料時の代引き手数料が常に9.99円の四捨五入で10円となってしまいます。

http://zen-cart.jp/bbs/viewtopic.php?p= ... 1%DF#17341
と、ありましたので修正する事でOKでした。

本当にありがとうございましたm(_ _)m

今後ともよろしくお願いいたします。
Zen Cart 1.3.0.2-l10n-jp-3
サーバOS: FreeBSD 5.5
データベース: MySQL 4.1.12
PHP バージョン: 5.2.5

--------------------------------------
ミリタリーショップ
http://nangoku100katen.com/
--------------------------------------

“Zen Cart 質問コーナー” へ戻る