記事No | : 9728 |
投稿日 | : 2011/11/25(Fri) 15:12:09 |
タイトル | : Web Mart v2.73の送料設定について |
ID情報 | : jpwaka |
投稿者 | : kuro |
URL | : http://gochiuma.com/gochiuma1.html |
以前Web Mart v1.42で同じ質問をさせてもらい、改造について教えていただきました。
このたび、送料規定がかわり、複雑になり
2000円まで 780円
2000円以上 500円
5000円以上 無料
北海道・沖縄・離島は別途700円
となりました。
この機にWeb Mart v2.73にバージョンアップしようと思います。
ショッピングカート Web Mart v2.73を使って、
送料を、
2000円まで 780円
2000円以上 500円
5000円以上 無料
北海道・沖縄・離島は別途700円
とするにはどうすればよいのでしょうか?
どうかよろしくお願いします。
Web Mart v1.42では下記にようにすればよいと教わりました。
●mart_init.cgi
# 送料の無料サービスの合計金額 (税抜き)
# → 一定金額以上の場合に送料を無料
# → この機能を使用しない場合は 0 にする
$cari_serv = 5000;
#-------------------------------------------------
# 買物カゴ中身
#-------------------------------------------------
-- 省略 --
# 送料サービス有り
if ($cari_serv && $cari_serv <= $all) {
$postage2 = $postage = 0;
$memo = '送料サービス';
$serv_flag++;
} ## 追加
elsif ($all >= 2000) {$postage2 = $postage = 500; } ## 追加
elsif ($all < 2000) {$postage2 = $postage = 780; } ## 追加
# 送料サービス無し
#} else { ## コメントアウト
$postage2 = &comma($postage);
$memo = ' ';
#} コメントアウト
●mart_order.cgi
#-------------------------------------------------
# 注文送信 (Step3)
#-------------------------------------------------
-- 省略 --
# 送料サービス有り
if ($cari_serv && $cari_serv <= $all) {
$postage2 = $postage = 0;
$memo = ' (送料サービス)';
$serv_flag++;
} ## 追加
elsif ($all >= 2000) {$postage2 = $postage = 500; } ## 追加
elsif ($all < 2000) {$postage2 = $postage = 780; } ## 追加
# 送料サービス無し
#} else { ## コメントアウト
$postage2 = &comma($postage);
$memo = '';
#} ## コメントアウト
$mbody .= "送 料 : \\$postage2$memo\n";
記事No | : 9730 |
投稿日 | : 2011/11/25(Fri) 18:39:40 |
タイトル | : Re: Web Mart v2.73の送料設定について |
ID情報 | : Fuyuki |
投稿者 | : BAL |
URL | : http://www26.tok2.com/home/sumire1100/ |
以下の修正でいけると思います。
動作確認は念入りに行ってください。
但し離島については対応できません。
order.cgi
#-----------------------------------------------------------
# 確認画面 (Step2)
#-----------------------------------------------------------
-- 省略 --
# 送料
if ($postage > 0) {
# 送料サービス有り
if ($cf{cari_serv} && $cf{cari_serv} <= $all) {
$postage = 0;
$serv_flag++;
}
elsif ($all >= 2000) { $postage = 500; }
elsif ($all < 2000) { $postage = 780; }
}
my $pre;
if ($in{pref2}) { $pre = $in{pref2} }
if ($pre == 1 || $pre == 47) { $postage += 700; }
$gkei = $all;
# 送料が設定されている場合
#-----------------------------------------------------------
# 注文送信 (Step3)
#-----------------------------------------------------------
-- 省略 --
# 送料サービス有り
$in{postage} = 0;
if ($cf{cari_serv} && $cf{cari_serv } <= $all) {
$in{postage} = $postage = 0;
$in{postage} .= ' (送料サービス)';
}
elsif ($all >= 2000) {$postage = $in{postage}= 500; }
elsif ($all < 2000) {$postage = $in{postage} = 780; }
if ($in{pref2}) { $pre=$in{pref2} }
my $pre;
if ($pre eq "北海道" || $pre eq "沖縄県") { $postage += 700; }
# 送料サービス無し
# else {
$all += $postage;
$in{postage} = &comma($postage);
#}
}
# 支払手数料
記事No | : 9734 |
投稿日 | : 2011/11/26(Sat) 12:57:00 |
タイトル | : Re^2: Web Mart v2.73の送料設定について |
ID情報 | : jpwaka |
投稿者 | : kuro |
URL | : http://gochiuma.com/gochiuma1.html |
早速のお答えありがとうございます。
Web Mart v2.73にて試してみます。
記事No | : 9759 |
投稿日 | : 2011/11/29(Tue) 19:42:14 |
タイトル | : Re^3: Web Mart v2.73の送料設定について |
ID情報 | : jpwaka |
投稿者 | : kuro |
URL | : http://gochiuma.com/aburi_s.html |
Global symbol "$pre" requires explicit package name at /var/www/www.gochiuma.com/web/mart/order.cgi line 516, <DATA> line 855.
Execution of /var/www/www.gochiuma.com/web/mart/order.cgi aborted due to compilation errors.
というエラーが返ってきました。
二か所のみ下記のように記述したのですが何故でしょうか?
#----------------------------------------------------------
# 確認画面 (Step2)
#----------------------------------------------------------
-- 省略 --
# 送料
if ($postage > 0) {
# 送料サービス有り
if ($cf{cari_serv} && $cf{cari_serv} <= $all) {
$postage = 0;
$serv_flag++;
}
elsif ($all >= 2000) { $postage = 500; }
elsif ($all < 2000) { $postage = 780; }
}
my $pre;
if ($in{pref2}) { $pre = $in{pref2} }
if ($pre == 1 || $pre == 47) { $postage += 700; }
$gkei = $all;
# 送料が設定されている場合
#-----------------------------------------------------------
# 注文送信 (Step3)
#-----------------------------------------------------------
-- 省略 --
# 県別送料
my $memo;
if ($postage > 0) {
# 送料サービス有り
$in{postage} = 0;
if ($cf{cari_serv} && $cf{cari_serv } <= $all) {
$in{postage} = $postage = 0;
$in{postage} .= ' (送料サービス)';
}
elsif ($all >= 2000) {$postage = $in{postage}= 500; }
elsif ($all < 2000) {$postage = $in{postage} = 780; }
if ($in{pref2}) { $pre=$in{pref2} }
my $pre;
if ($pre eq "北海道" || $pre eq "沖縄県") { $postage += 700; }
# 送料サービス無し
} else {
$all += $postage;
$in{postage} = &comma($postage);
#}
}
# 支払手数料
記事No | : 9760 |
投稿日 | : 2011/11/29(Tue) 19:52:00 |
タイトル | : Re^4: Web Mart v2.73の送料設定について |
ID情報 | : Fuyuki |
投稿者 | : BAL |
URL | : http://www26.tok2.com/home/sumire1100/ |
これは申し訳ないmy $pre;の位置が間違っていました。
elsif ($all >= 2000) {$postage = $in{postage}= 500; }
elsif ($all < 2000) {$postage = $in{postage} = 780; }
my $pre; ## ここに移動
if ($in{pref2}) { $pre=$in{pref2} }
if ($pre eq "北海道" || $pre eq "沖縄県") { $postage += 700; }
記事No | : 9761 |
投稿日 | : 2011/11/29(Tue) 20:38:13 |
タイトル | : Re^5: Web Mart v2.73の送料設定について |
ID情報 | : jpwaka |
投稿者 | : kuro |
URL | : http://gochiuma.com/gochiuma1.html |
決済手続きまで動きました。ありがとうございます。
ただ、北海道・沖縄での追加700円の設定が不安定です。
決済画面で出てこなかったり、画面には出ても送付メールには記載されなかったりします。
どうしたものか。
記述は下記の通りです。
#----------------------------------------------------------
# 確認画面 (Step2)
#----------------------------------------------------------
-- 省略 --
# 送料
if ($postage > 0) {
# 送料サービス有り
if ($cf{cari_serv} && $cf{cari_serv} <= $all) {
$postage = 0;
$serv_flag++;
}
elsif ($all >= 2000) { $postage = 500; }
elsif ($all < 2000) { $postage = 780; }
}
my $pre;
if ($in{pref2}) { $pre = $in{pref2} }
if ($pre == 1 || $pre == 47) { $postage += 700; }
$gkei = $all;
# 送料が設定されている場合
#-----------------------------------------------------------
# 注文送信 (Step3)
#-----------------------------------------------------------
-- 省略 --
# 送料サービス有り
$in{postage} = 0;
if ($cf{cari_serv} && $cf{cari_serv } <= $all) {
$in{postage} = $postage = 0;
$in{postage} .= ' (送料サービス)';
}
elsif ($all >= 2000) {$postage = $in{postage}= 500; }
elsif ($all < 2000) {$postage = $in{postage} = 780; }
my $pre;## ここに移動
if ($in{pref2}) { $pre=$in{pref2} }
if ($pre eq "北海道" || $pre eq "沖縄県") { $postage += 700; }
# 送料サービス無し
記事No | : 9762 |
投稿日 | : 2011/11/29(Tue) 20:57:22 |
タイトル | : Re^6: Web Mart v2.73の送料設定について |
ID情報 | : Fuyuki |
投稿者 | : BAL |
URL | : http://www26.tok2.com/home/sumire1100/ |
以下にしてください。
# 送料サービス無し
$all += $postage;
$in{postage} = &comma($postage);
}
# 支払手数料
記事No | : 9763 |
投稿日 | : 2011/11/29(Tue) 21:42:33 |
タイトル | : Re^7: Web Mart v2.73の送料設定について |
ID情報 | : jpwaka |
投稿者 | : kuro |
URL | : http://gochiuma.com/gochiuma1.html |
下記のようにしたところ
決済確認画面にも別途700円が出なくなりました。
配送先が異なる場合に記入する欄に住所を入れると
正しく確認画面も送付メールも届きます。
#-----------------------------------------------------------
# 注文送信 (Step3)
#-----------------------------------------------------------
ー省略ー
# 送料サービス有り
$in{postage} = 0;
if ($cf{cari_serv} && $cf{cari_serv } <= $all) {
$in{postage} = $postage = 0;
$in{postage} .= ' (送料サービス)';
}
elsif ($all >= 2000) {$postage = $in{postage}= 500; }
elsif ($all < 2000) {$postage = $in{postage} = 780; }
my $pre;## ここに移動
if ($in{pref2}) { $pre=$in{pref2} }
if ($pre eq "北海道" || $pre eq "沖縄県") { $postage += 700; }
# 送料サービス無し
$all += $postage;
$in{postage} = &comma($postage);
}
# 支払手数料
> 以下にしてください。
>
> # 送料サービス無し
> $all += $postage;
> $in{postage} = &comma($postage);
> }
>
> # 支払手数料
記事No | : 9764 |
投稿日 | : 2011/11/29(Tue) 23:03:06 |
タイトル | : Re^8: Web Mart v2.73の送料設定について |
ID情報 | : Fuyuki |
投稿者 | : BAL |
URL | : http://www26.tok2.com/home/sumire1100/ |
これでいけると思います。
# 送料
if ($postage > 0) {
# 送料サービス有り
if ($cf{cari_serv} && $cf{cari_serv} <= $all) {
$postage = 0;
$serv_flag++;
}
elsif ($all >= 2000) { $postage = 500; }
elsif ($all < 2000) { $postage = 780; }
}
my $pre = $in{pref};
if ($in{pref2}) { $pre = $in{pref2} }
if ($pre == 1 || $pre == 47) { $postage += 700; }
$gkei = $all;
# 県別送料
my $memo;
if ($postage > 0) {
# 送料サービス有り
$in{postage} = 0;
if ($cf{cari_serv} && $cf{cari_serv } <= $all) {
$in{postage} = $postage = 0;
$in{postage} .= ' (送料サービス)';
}
elsif ($all >= 2000) {$postage = $in{postage}= 500; }
elsif ($all < 2000) {$postage = $in{postage} = 780; }
my $pre = $in{pref};
if ($in{pref2}) { $pre=$in{pref2} }
if ($pre eq "北海道" || $pre eq "沖縄県") { $postage += 700; }
# 送料サービス無し
$all += $postage;
$in{postage} = &comma($postage);
}
記事No | : 9765 |
投稿日 | : 2011/11/29(Tue) 23:50:51 |
タイトル | : Re^9: Web Mart v2.73の送料設定について |
ID情報 | : jpwaka |
投稿者 | : kuro |
うまくいきました。
長々とおつきあいありがとうございました。