KENT-WEB サポートコーナー 過去ログ [ 0282 ]


記事No: 7924
投稿日: 2010/09/16(Thu) 16:46:27
タイトルShopping Cartの送料について
ID情報: CRUCIFIX
投稿者: バリ
URLhttp://www.cartonode.com/web-content/body/cart/cart.cgi

Shopping Cart Ver: 4.11を使っています。
送料の値段設定が都道府県prefではなく3種の発送方法sendway(定型郵便、letterpack350、letterpack500)によって決定する様に手直しをしたのですが、なぜがどの発送方法を選択しても送料が500円になってしまいます。どこが間違えているかご指南いただければと思います。

init.cgi

@sendway = (
'定型郵便,80',
'LETTERPACK350,350',
'LETTERPACK500,500',
);

order.cgi

# 送料
local($sendway,$sendway) = split(/,/, $sendway[$tmp]);

この辺りを直しました。


記事No: 7926
投稿日: 2010/09/16(Thu) 23:43:03
タイトルRe: Shopping Cartの送料について
ID情報: Fuyuki
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> Shopping Cart Ver: 4.11を使っています。
> 送料の値段設定が都道府県prefではなく3種の発送方法sendway(定型郵便、letterpack350、letterpack500)によって決定する様に手直しをしたのですが、なぜがどの発送方法を選択しても送料が500円になってしまいます。どこが間違えているかご指南いただければと思います。
>
> init.cgi
>
> @sendway = (
> '定型郵便,80',
> 'LETTERPACK350,350',
> 'LETTERPACK500,500',
> );
>
> order.cgi
>
> # 送料
> local($sendway,$sendway) = split(/,/, $sendway[$tmp]);
>
> この辺りを直しました。


配送方法の選択はラジオボタンですが参考にしてください。

●init.cgi
# 配達方法の選択
@sendway = qw(定型郵便,80 LETTERPACK350,350 LETTERPACK500,500);

●order.cgi
#-------------------------------------------------
# 注文処理
#-------------------------------------------------
-- 省略 --

# 送料サービス
local($memo)='';
if ($cari_serv && $deli && $in_tax >= $cari_serv) {

$memo = '(送料サービス)';
$deli=0;
}
my($send,$cos) = split(/,/, $sendway[$in{'sendway'}]); ## ★追加
$deli = $cos; ## ★追加
$in_tax += $deli;
$deli = &filler($deli);

-- 省略 --

#▼ここから▼
print "<tr><td class=r width=110 align=right>配達方法 <font color=red>※</font></td>";
print "<td class=r width=440>\n";

foreach (0 .. $#sendway) {
($send) = split(/,/, $sendway[$_]);
print "<input type=radio name=sendway value=\"$_\">$send&nbsp;\n";
}
print "</td></tr>\n";
#▲ここまで追加▲
# 配達日時

-- 省略 --

## 確認画面
} elsif ($in{'job'} == 3) {

local($pay) = split(/,/, $payment[$in{'payment'}]);
my($send) = split(/,/, $sendway[$in{'sendway'}]); ## ★追加
# 送信ボタン
$submit = '上記内容で確定 &gt;&gt;';

print "<p><table border=1 cellspacing=0 cellpadding=4 width=550>\n";
print "<tr><td class=l colspan=2>\n";
print "▼<b>支払・配達情報方法</b></td></tr>\n";
print "<tr><td class=r width=110 align=right>支払方法&nbsp;</td>";
print "<td class=r width=440>$pay</td></tr>\n";
print "<tr><td class=r width=110 align=right>配達方法&nbsp;</td>"; ## ★追加
print "<td class=r width=440>$send</td></tr>\n"; ## ★追加
print "<tr><td class=r width=110 align=right>配達指定&nbsp;</td>";
print "<td class=r width=440>";


#-------------------------------------------------
# メール送信
#-------------------------------------------------
-- 省略 --
# 送料サービス
local($memo)='';
if ($cari_serv && $deli && $in_tax >= $cari_serv) {
$memo = '(送料サービス)';
$deli=0;
}
my($send,$cos) = split(/,/, $sendway[$in{'sendway'}]); ## ★追加
$deli = $cos; ## ★追加
$in_tax += $deli;


記事No: 7938
投稿日: 2010/09/21(Tue) 13:49:26
タイトルRe^2: Shopping Cartの送料について
ID情報: CRUCIFIX
投稿者: バリ
URLhttp://www.cartonode.com/web-content/body/cart/cart.cgi

BAL様

ご回答いただき誠にありがとうございます。
返信が遅れまして大変失礼致しました。
早速作り直しました。

web上での発送方法、送料や合計金額が正確に表示される様になりました。

確定注文をしたところ
届くメールの「▼注文内容」が
どの発送方法を選んでも
送 料 : \80
となってしまうのです。。

# メール送信
#-------------------------------------------------
-- 省略 --
# 送料サービス
local($memo)='';
if ($cari_serv && $deli && $in_tax >= $cari_serv) {
$memo = '(送料サービス)';
$deli=0;
}
my($send,$cos) = split(/,/, $sendway[$in{'sendway'}]); ## ★追加
$deli = $cos; ## ★追加
$in_tax += $deli;

----
の辺りは間違いなく修正したのですが
どの辺りを疑えばよいでしょうか?

又、
$mbody .= "▼支払・発送情報\n";
$mbody .= "──────────────────────────────\n";
$mbody .= "支払方法 = $pay\n";
$mbody .= "発送方法 = $send\n";★追加

も追加修正したのですが
どの発送方法を選択した場合も
メールには
発送方法 = 定型郵便
となっている状態です。


ご指南いただければ大変助かります。
どうぞよろしくお願い致します。


記事No: 7940
投稿日: 2010/09/21(Tue) 20:38:30
タイトルRe^3: Shopping Cartの送料について
ID情報: Fuyuki
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

以下の追加修正を行ってください。

●order.cgi

foreach ('payment','sendway','comp','name','yuno','pref','addr','tel','fax','email','comp2','name2','yuno2','pref2','addr2','tel2','fax2','cook','mon','day','hour','note') { ## ★修正




$mbody .= "──────────────────────────────\n";
$mbody .= "▼支払・配達情報\n";
$mbody .= "──────────────────────────────\n";
$mbody .= "支払方法 = $pay\n";
$mbody .= "配達方法 = $send\n"; ## ★追加
if ($in{'mon'} ne "" && $in{'day'} ne "") {


記事No: 7959
投稿日: 2010/09/26(Sun) 22:20:34
タイトルRe^4: Shopping Cartの送料について
ID情報: CRUCIFIX
投稿者: バリ

ありがとうございました。
正確な情報がメールで送信出来る様になりました。
とても助かりました。

しかし、もう一点問題があるようで

init.cgi

# 送料の無料サービスの合計金額
# → 一定金額以上の場合に送料を無料
# → この機能を使用しない場合は 0 にする
$cari_serv = 5000;

にして
5000円以上超した場合、注文確認画面で
「送料サービス」
と表記されるのですが
実際価格のところは選んだ発送方法の金額が表示され合計金額にも送料が反映されています。
この問題はどこを修正すれば解決出来るでしょうか?

よろしくお願い致します。


記事No: 7960
投稿日: 2010/09/26(Sun) 22:32:35
タイトルRe^5: Shopping Cartの送料について
ID情報: Fuyuki
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> ありがとうございました。
> 正確な情報がメールで送信出来る様になりました。
> とても助かりました。
>
> しかし、もう一点問題があるようで
>
> init.cgi
>
> # 送料の無料サービスの合計金額
> # → 一定金額以上の場合に送料を無料
> # → この機能を使用しない場合は 0 にする
> $cari_serv = 5000;
>
> にして
> 5000円以上超した場合、注文確認画面で
> 「送料サービス」
> と表記されるのですが
> 実際価格のところは選んだ発送方法の金額が表示され合計金額にも送料が反映されています。
> この問題はどこを修正すれば解決出来るでしょうか?
>
> よろしくお願い致します。


追加項目の挿入位置を間違えていました。
●order.cgi

# 送料
if ($in{'name2'}) { $tmp = $in{'pref2'}; }
else { $tmp = $in{'pref'}; }
local($pref,$deli) = split(/,/, $pref[$tmp]);
my($send,$cos) = split(/,/, $sendway[$in{'sendway'}]); ## ★追加
$deli = $cos; ## ★追加
# 送料サービス
local($memo)='';
if ($cari_serv && $deli && $in_tax >= $cari_serv) {

$memo = '(送料サービス)';
$deli=0;
}


# 都道府県
($mypref) = split(/,/, $pref[$in{'pref'}]);
my($send,$cos) = split(/,/, $sendway[$in{'sendway'}]); ## ★追加
$deli = $cos; ## ★追加
# 送料サービス
local($memo)='';
if ($cari_serv && $deli && $in_tax >= $cari_serv) {
$memo = '(送料サービス)';
$deli=0;
}


記事No: 7961
投稿日: 2010/09/27(Mon) 09:21:17
タイトルRe^6: Shopping Cartの送料について
ID情報: CRUCIFIX
投稿者: バリ
URLhttp://www.cartonode.com/web-content/body/cart/cart.cgi

ありがとうございました!問題なく反映される様になりました!

最後にもう一つアドバイスいただけますでしょうか。

送料サービスの内容に条件を付けたいのですが
init.cgiので設定した決まった金額以上の送料サービスにおいて
LETTERPACK350とLETTERPACK500に限り「-350円」サービスとする場合、下の様に記載すると定型郵便(80円)からも-350円引かれてしまうため商品の合計金額から-270円引かれてしまいます。
定型郵便を選択した場合は(80円)加算され
LETTERPACK350を選択した場合送料(0円)
LETTERPACK500を選択した場合送料(150円)
という設定をしたいと思っています。


---
order.cgi

# 送料サービス
local($memo)='';
if ($cari_serv && $deli && $in_tax >= $cari_serv) {
$memo = '(送料サービス)';
$deli= $cos-350;
}


---
なにか良い方法は無いでしょうか。

無理な質問ばかりで大変恐縮ですがどうぞよろしくお願い致します。


記事No: 7962
投稿日: 2010/09/27(Mon) 10:05:10
タイトルRe^7: Shopping Cartの送料について
ID情報: Fuyuki
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> ありがとうございました!問題なく反映される様になりました!
>
> 最後にもう一つアドバイスいただけますでしょうか。
>
> 送料サービスの内容に条件を付けたいのですが
> init.cgiので設定した決まった金額以上の送料サービスにおいて
> LETTERPACK350とLETTERPACK500に限り「-350円」サービスとする場合、下の様に記載すると定型郵便(80円)からも-350円引かれてしまうため商品の合計金額から-270円引かれてしまいます。
> 定型郵便を選択した場合は(80円)加算され
> LETTERPACK350を選択した場合送料(0円)
> LETTERPACK500を選択した場合送料(150円)
> という設定をしたいと思っています。
>
>
> ---
> order.cgi
>
> # 送料サービス
> local($memo)='';
> if ($cari_serv && $deli && $in_tax >= $cari_serv) {
> $memo = '(送料サービス)';
> $deli= $cos-350;
> }
>
>
> ---
> なにか良い方法は無いでしょうか。
>
> 無理な質問ばかりで大変恐縮ですがどうぞよろしくお願い致します。


これでいけるはずです。
$deli=0 if($in{'sendway'} == 0); ## 80円加算する場合はこれは不要
$deli= $cos-350 if($in{'sendway'} !=0);


記事No: 7964
投稿日: 2010/09/27(Mon) 16:30:23
タイトルRe^8: Shopping Cartの送料について
ID情報: CRUCIFIX
投稿者: バリ
URLhttp://www.cartonode.com/web-content/body/cart/cart.cgi

ありがとうございます。
Re6で問題ないく反映されたとお伝えしましたが
確認画面には反映されているのですが
メールの方はまだ送料サービスにはなっていない金額となります。





# 送料
if ($in{'name2'}) { $tmp = $in{'pref2'}; }
else { $tmp = $in{'pref'}; }
local($pref,$deli) = split(/,/, $pref[$tmp]);
my($send,$cos) = split(/,/, $sendway[$in{'sendway'}]);
$deli = $cos;

# 送料サービス
local($memo)='';
if ($cari_serv && $deli && $in_tax >= $cari_serv) {
$memo = '(LP350送料サービス)';
$deli=0 if($in{'sendway'} == 0);
$deli= $cos-350 if($in{'sendway'} !=0);
}

$in_tax += $deli;

$deli = &filler($deli);
print "<tr><td colspan=4 align=right class=r><b>送料</b></td>\n";
print "<td align=right nowrap class=r><b>\\$deli</b></td>\n";
print "<td colspan=$colspan class=r>$memo<br></td></tr>\n";

---
#-------------------------------------------------
# メール送信
#-------------------------------------------------


# 都道府県
($mypref) = split(/,/, $pref[$in{'pref'}]);
my($send,$cos) = split(/,/, $sendway[$in{'sendway'}]);
$deli = $cos;

# 送料サービス
local($memo)='';
if ($cari_serv && $deli && $in_tax >= $cari_serv) {
$memo = '(送料サービス)';
$deli=0 if($in{'sendway'} == 0);
$deli= $cos-350 if($in{'sendway'} !=0);

---
と書き直したのですが
間違っていますでしょうか?
Re7で教えて頂いた箇所もブラウザで確認画面ではせいかくに表示されました。ありがとうございます。
しかしやはりメールの方は通常の送料の加算となってしまいます。


記事No: 7965
投稿日: 2010/09/27(Mon) 19:24:21
タイトルRe^9: Shopping Cartの送料について
ID情報: Fuyuki
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

こちらでその記述でメールも送料が無料になることを確認しています。
order.cgiをorder.textに拡張子を変更したコピーをサーバーにアップして見えるようにしてもらえれば確認します。


記事No: 7966
投稿日: 2010/09/27(Mon) 21:36:58
タイトルRe^10: Shopping Cartの送料について
ID情報: CRUCIFIX
投稿者: バリ
URLhttp://www.cartonode.com/web-content/body/cart/cart.cgi

すみません。。

こちらになります
http://www.cartonode.com/web-content/body/cart/order.text

宜しくお願い致します。


記事No: 7967
投稿日: 2010/09/27(Mon) 23:23:58
タイトルRe^11: Shopping Cartの送料について
ID情報: Fuyuki
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> すみません。。
>
> こちらになります
> http://www.cartonode.com/web-content/body/cart/order.text
>
> 宜しくお願い致します。


以下の修正を

# 都道府県
($mypref) = split(/,/, $pref[$in{'pref'}]);
my($send,$cos) = split(/,/, $sendway[$in{'sendway'}]);
$deli = $cos;

# 送料サービス
local($memo)='';
if ($cari_serv && $deli && $in_tax >= $cari_serv) {
$memo = '(送料サービス)';
$deli=0;
}
my($send,$cos) = split(/,/, $sendway[$in{'sendway'}]); ##
$deli = $cos; ##
$in_tax += $deli;

         ↓

my($send,$cos) = split(/,/, $sendway[$in{'sendway'}]); ## ★追加
$deli = $cos; ## ★追加
# 送料サービス
local($memo)='';
if ($cari_serv && $deli && $in_tax >= $cari_serv) {
$memo = '(送料サービス)';
#$deli=0;
$deli=0 if($in{'sendway'} == 0); ## ★追加
$deli= $cos-350 if($in{'sendway'} !=0); ## ★追加
}

$in_tax += $deli;


[検索ページ]