カレッヂ |
質問者 片山
投稿日 7/17(木) 16:00:58
以前(2月3日)呑兵衛さんにご丁寧にお答えしていただいた同様の質問ですが、 その後、順調に行っていたのですが、最近になって狙い通りに作動していないケー スがございましたので、あらためて質問する次第です。 狙い:特定商品が合計4000円以上なら送料無料に 解決策:特定商品"_gname"に判別文字「_S」をつけ、 sub mado で $SHOKEI += $fee; # 累計 $name =~ s/_S//g; #表示だけなので sub cfmで $SHOKEI += $fee; # 累計 if ($name =~ /_S/) { $name =~ s/_S//g; $FEE_SPECIAL .= $fee; } #_S のついたものに限定するため ラベル=if が必要 if ($in{'_area'} =~ /(.*):(\d+)$/) { $area = $1; $soryo = $2; } if ($FEE_SPECIAL >= 4000) { $soryo = 0; } 問題症状: 1)1000円の商品をまとめて3つ注文すると、送料有料のままだが、 2回か3回に分けて注文すると、3000円なのに送料無料になってしまう 2)同様に、2000円未満の商品をそれぞれ注文すると、やはり4000円未満なのに 送料無料になってしまう どうやら複数回注文すれば、合計金額にかかわらず、送料無料になってしまうよ うなんですが、どこかで二重に加算しているのでしょうか? たまたまウチの商品が2000円前後のものが多く、大体4000円超えていて上記のような 症状があまり出ていなかったので、最近気付いた次第です。 ご多忙のおり、恐縮ですが、なにかヒントがいただけないかと思う次第です。 宜しくお願いします。
プロバイダ参照: |
回答者 呑兵衛@大阪
[削除]
投稿日 7/20(日) 17:45:11
よくこんな大嘘を教えたもんです。大謝! ◆商品.html で <input type=hidden name="_gname" value="商品名_S"> を <input type=hidden name="_gname" value="S_商品名"> に変更 ◆sub mado で $name =~ s/_S//g; を $name =~ s/^S_//g; に変更 ◆sub cfm の if ($name =~ /_S/) { $name =~ s/_S//g; $FEE_SPECIAL .= $fee; } を if ($name =~ /^S_/) { $name =~ s/^S_//g; $FEE_SPECIAL += $fee; } に変更 原因は $FEE_SPECIAL .= $fee; にあり、加算ではなく単に文字列連結していたことによる ものでした。 |
質問者 かたやま
[削除]
投稿日 7/22(火) 14:05:07
無事動いております。 こちらこそ、.= と += 基本的な所を見落としてしまいすみません。 ご教示のとおり、判別文字を文字頭につけてますが、文字末尾だとなにか トラブルのでしょうか? いろいろと有り難うございます。 |
返信(回答)する
Web裏技 |