CGI-BBS > SO−HO > ショッピングバスケット > 「まとめ買いで1個につき500円の値引き」の設定方法


カレッヂ
カレッヂ


質問者 まっちゃん  投稿日 3/28(水) 19:42:20
簡易ショッピングバスケットを使っているのですが
2個以上お買い上げの方には1個につき500円の値引きに設定する方法って出来るのでしょうか?
例)
商品名      単価 数量  小計
━━━━━━━━━━━━━━━━━━━
商品A      5000  1  5,000
商品B      6000  1  6,000
商品C      4500  1  4,500
まとめ買い値引き  500  2  -1,000
━━━━━━━━━━━━━━━━━━━
税込み合計           14,500

という様にしたいのですが、可能なのでしょうか?
cargo.cgiの中でいじりたいのですが、どこをいじればいいのかよくわかりません。

各ページに{unit2}を持たしてする方法も考えたのですが、
見た目上、値引きされているとわかるような表示(上記のような)
をさせたいのですが、どなたかわからないでしょうか?
回答者 fujioka  [削除]  投稿日 3/30(金) 02:25:01
こんなかんじでどうでしょう。ちょっとワークが効率悪し。
テストはここです。  http://www.interq.or.jp/osaka/interest/cgi-bin/index.html
<01>先頭でワーク宣言
#----------
$nebiki = -500; # 値引額                 (マイナスをつけて下さい)
$sousu  = 0;    # 買い上げ数量計算ワーク (総数)
$nsuryo = 0;    # 値引き数量計算ワーク   (総数マイナス1)
$matome = 1;    # 最低まとめ数           (以上が値引き対象)
$nebikigak = 0; # 値引額                 (値引額*値引き数量計算ワーク) 
$nebikigo = 0;  # 値引後合計             (合計金額マイナス値引額)
#----------
<02>売上数のカウント(明細を表示しているところに行追加)
#--start----
                $sousu = $sousu + $COOKIE{'amount'};
#--end------
                print "<tr>\n";
                print "<th>$COOKIE{'goods'}</th>\n";
                print "<th>$COOKIE{'unit'}</th>\n";
                print "<th>$COOKIE{'amount'}</th>\n";
                print "<th>$COOKIE{'rem'}</th>\n";
                print "<th>$shoukei2</th>\n";

<03>値引額の計算(存在チェックのELSEに行追加)
if (!$sonzai) {

                print "<h3>現在注文票には何も選択されていません.</h3>\n";
                print "<h3>[<a href=\"$modoru\">商品選択画面へ</a>]</h3>\n";
                print "または<p>ブラウザの[戻る]ボタンを押して前の画面に移動してください.<p><br>\n";

        }
        else {
#--start------
                if ( $sousu > $matome )
                   {
                          $nsuryo = $sousu - 1;
                     $nebikigak = $nebiki * $nsuryo;        
                     $nebikigo = int($zeibetsu_goukei + $nebikigak);
                     $zeibetsu_goukei = $nebikigo;
                     $zeibetsu_goukei2 = $nebikigo;
                     1 while $nebikigo =~ s/(.*\d)(\d\d\d)/$1,$2/g;
                     1 while $nebikigak =~ s/(.*\d)(\d\d\d)/$1,$2/g;}
#--end--------
<04>値引額表示(合計を表示しているあたりに行追加)
#--start------
               if ( $sousu > $matome ) { print "<tr><th bgcolor=\"#ffaaaa\" >まとめ値引き</th>
          <th>$nebiki</th><th>$nsuryo</th><th> </th><th>$nebikigak</tr>\n";}
#-end---------
               print "<tr><th bgcolor=\"#ffaaaa\" colspan=4>$zei合計</th>
        <th bgcolor=\"#ffaaaa\">$zeibetsu_goukei2円</th><th></th></tr>\n";
        if ($taxrate != 0) { print "<tr><th bgcolor=\"#ffaaaa\" colspan=4>
                消費税$taxrate\%($tax円)込み総合計</th><th bgcolor=\"#ffaaaa\">
                $sougoukei円</th><th></th></tr>\n"; }

<05>メール用に追加
foreach $mail (@MAIL) {
                        ($A,$B,$C,$D) = split(/:/,$mail);
                        print "<input type=hidden name=\"注文\" value=\"$A($D) x $B ( 備考:$C )\">\n";
                }
#--start------
               if ( $sousu > $matome ) { print "<input type=hidden name=\"まとめ値引額\" value=\"$nebikigak円\">\n";}
                print "<input type=hidden name=\"合計\" value=\"$zeibetsu_goukei2円\">\n";
#--end------
               if ($taxrate != 0) { print "<input type=hidden
                   name=\"支払合計\" value=\"$sougoukei円(うち消費税$tax円)\">\n"; }
質問者 まっちゃん  [削除]  投稿日 3/30(金) 10:02:57
fujioka様!
ありがとうございます。
こんなとんでもない質問に、
こんなにご丁寧に解説いただけるなんて!
ありがとうございます。
早速テストしてまた連絡させていただきます。
質問者 まっちゃん  [削除]  投稿日 3/30(金) 11:53:31
fujioka様
出来ました。完璧です。

全く思い通りのことが出来てとってもうれしいです。

ありがとうございました。

返信(回答)する


Web裏技