#!/usr/local/bin/perl5 #↑サーバーに合わせて設定 ############################################################################### # 有限会社プチバンビーナSHOPPING CART SYSTEM # Putiban Cart Rev # Copyright Puti-Banbeena Company Since 2002 All Rights Reserved. # http://www.puti-banbeena.com/ # cgiwith@putiban.com # # 本スクリプトの著作権は有限会社プチバンビーナが所有します。 # 本スクリプトの改造は自由です。 # ご利用において以下の行為を一切禁じます。 # # - 著作に係る部分の削除 # - 有料、無料に関わらず再配布すること # - 代行設置等を含めデザイン会社等による商用利用 # #  またこのスクリプトご利用においてのトラブルに関しては #  一切有限会社プチバンビーナは関与致しません。 ############################################################################### ## OPTION作製 ####################################### #____________________________________________________ sub OPmake { $OPno1 = ""; $OPno2 = ""; $OPno3 = ""; $OPno4 = ""; $OPno5 = ""; if(@data[2] ne ""){$OPno1 = "/@data[2]";} if(@data[3] ne ""){$OPno2 = "/@data[3]";} if(@data[4] ne ""){$OPno3 = "/@data[4]";} if(@data[5] ne ""){$OPno4 = "/@data[5]";} if(@data[6] ne ""){$OPno5 = "/@data[6]";} } ## 在庫のチェック、操作 ############################# #____________________________________________________ sub ZAIKO_CHECK { if($checkcount ne ""){$zaiko_check_count = $checkcount;} else{$zaiko_check_count = $count;} if($zaiko[$zaiko_check_count] ne "yes") { $zaiko_kazu = "$zaiko[$zaiko_check_count]"; } else { $zaiko_csv = "$DATAURL"; #商品CSV settei.txt # CSVファイルの呼び出し open(ZAICSV, "<$zaiko_csv") or printDataErrorPage3("商品データ取得失敗"); eval{ flock(ZAICSV, 1) }; @ZAIKO_DATA = ; close ZAICSV; $zaiko_banme = 0; for($d = 0 ; $d < @ZAIKO_DATA ; ++$d) { (@ZAIKO_GOODS) = split(/\,/, $ZAIKO_DATA[$d]); if($no[$zaiko_check_count] eq "@ZAIKO_GOODS[0]") { $zaiko_banme = "$d"; } } (@ZAIKO_GOODS) = split(/\,/, @ZAIKO_DATA[$zaiko_banme]); $zaiko_kazu = ""; if($no[$zaiko_check_count] eq "@ZAIKO_GOODS[0]") { $zaiko_kazu = "@ZAIKO_GOODS[12]"; } } } sub ZAIKO_CHECK2 { if($zaiko[$count] eq "yes") { $zaiko_csv = "$DATAURL"; #商品CSV settei.txt # CSVファイルの呼び出し open(ZAICSV, "<$zaiko_csv") or printDataErrorPage3("商品データ取得失敗"); eval{ flock(ZAICSV, 1) }; @ZAIKO_DATA = ; close ZAICSV; $zaiko_banme = 0; for($d = 0 ; $d < @ZAIKO_DATA ; ++$d) { (@ZAIKO_GOODS) = split(/\,/, $ZAIKO_DATA[$d]); if($no[$count] eq "@ZAIKO_GOODS[0]") { $zaiko_banme = "$d"; } } (@Z_KK) = split(/\,/, @ZAIKO_DATA[$zaiko_banme]); $zaiko_kazu_kei = @Z_KK[12]; if($no[$count] eq "@Z_KK[0]") { if($zaiko_kazu_kei < $kazu[$count]){$zaiko_kazu_kei = 0;} else{$zaiko_kazu_kei = $zaiko_kazu_kei - $kazu[$count];} @ZAIKO_DATA[$zaiko_banme] = "@Z_KK[0],@Z_KK[1],@Z_KK[2],@Z_KK[3],@Z_KK[4],@Z_KK[5],@Z_KK[6],@Z_KK[7],@Z_KK[8],@Z_KK[9],@Z_KK[10],@Z_KK[11],$zaiko_kazu_kei,@Z_KK[13],@Z_KK[14],end\n"; # 記事データの書き込み open(ZAICSV, ">$zaiko_csv") or printDataErrorPage3("商品データ取得失敗"); eval{ flock(ZAICSV, 2) }; print ZAICSV @ZAIKO_DATA; close ZAICSV; } } } ## 消費税計算 ####################################### #____________________________________________________ sub ZEIcount { $tax = 0; $daigoukei = 0; if($taxratemu eq "0") { $daigoukei= $goukei + $tax; if($koumokuumuzei ne "YES") { $KINGAKUBUBUN =< $DAIKINgoukei $goukei\円 $ZEIkoumokuname $tax\円 KINGAKU } } if($taxratemu ne "0") { $tax = $goukei * $taxrate; $tax=sprintf("%.0d",$tax); $daigoukei= $goukei + $tax; $KINGAKUBUBUN =< $DAIKINgoukei $goukei\円 $ZEIkoumokuname $tax\円 KINGAKU } } ## 手数料/消費税計算 ################################ #____________________________________________________ sub ZEIcount2 { $tax = 0; $daigoukei = 0; $genzaipointkei = 0; $pointwarikei = 0; $souryoukei = 0; $rappingkei = 0; $soudaigoukei = 0; # 消費税計算 if($taxratemu eq "0") { $daigoukei= $goukei + $tax; if($koumokuumuzei ne "YES") { $KINGAKUBUBUN =< $ZEIkoumokuname $tax\円 KINGAKU $ZEIKINHYOUZIBASHO2 = "$ZEIkoumokuname = $tax\円\n"; } } if($taxratemu ne "0") { $tax = $goukei * $taxrate; $tax=sprintf("%.0d",$tax); $daigoukei= $goukei + $tax; $KINGAKUBUBUN =< $ZEIkoumokuname $tax\円 KINGAKU $ZEIKINHYOUZIBASHO2 = "$ZEIkoumokuname = $tax\円\n"; } # 送料計算 @ichiritu = split(/\:/, $TIIKI); @ichiritu[1] =~ s/\円//g; if($SOUSEIKYU eq "3") { if($SOUSEIKYU3 eq "税抜き") { if($goukei >= $SOUSEIKYU2) { if($SOUwari > 0 && $SOUwari < 1){$souryoukei = @ichiritu[1] * $SOUwari;} else{$souryoukei = "$SOUwari";} } else{$souryoukei = "@ichiritu[1]";} if($SOUSEIKYU2_2 ne "" and $goukei >= $SOUSEIKYU2_2) { if($SOUwari2 > 0 && $SOUwari2 < 1){$souryoukei = @ichiritu[1] * $SOUwari2;} else{$souryoukei = "$SOUwari2";} } if($SOUSEIKYU2_3 ne "" and $goukei >= $SOUSEIKYU2_3) { if($SOUwari3 > 0 && $SOUwari3 < 1){$souryoukei = @ichiritu[1] * $SOUwari3;} else{$souryoukei = "$SOUwari3";} } if($SOUSEIKYU2_4 ne "" and $goukei >= $SOUSEIKYU2_4) { if($SOUwari4 > 0 && $SOUwari4 < 1){$souryoukei = @ichiritu[1] * $SOUwari4;} else{$souryoukei = "$SOUwari4";} } if($SOUSEIKYU2_5 ne "" and $goukei >= $SOUSEIKYU2_5) { if($SOUwari5 > 0 && $SOUwari5 < 1){$souryoukei = @ichiritu[1] * $SOUwari5;} else{$souryoukei = "$SOUwari5";} } } if($SOUSEIKYU3 eq "税込み") { if($daigoukei >= $SOUSEIKYU2) { if($SOUwari > 0 && $SOUwari < 1){$souryoukei = @ichiritu[1] * $SOUwari;} else{$souryoukei = "$SOUwari";} } else{$souryoukei = "@ichiritu[1]";} if($SOUSEIKYU2_2 ne "" and $daigoukei >= $SOUSEIKYU2_2) { if($SOUwari2 > 0 && $SOUwari2 < 1){$souryoukei = @ichiritu[1] * $SOUwari2;} else{$souryoukei = "$SOUwari2";} } if($SOUSEIKYU2_3 ne "" and $daigoukei >= $SOUSEIKYU2_3) { if($SOUwari3 > 0 && $SOUwari3 < 1){$souryoukei = @ichiritu[1] * $SOUwari3;} else{$souryoukei = "$SOUwari3";} } if($SOUSEIKYU2_4 ne "" and $daigoukei >= $SOUSEIKYU2_4) { if($SOUwari4 > 0 && $SOUwari4 < 1){$souryoukei = @ichiritu[1] * $SOUwari4;} else{$souryoukei = "$SOUwari4";} } if($SOUSEIKYU2_5 ne "" and $daigoukei >= $SOUSEIKYU2_5) { if($SOUwari5 > 0 && $SOUwari5 < 1){$souryoukei = @ichiritu[1] * $SOUwari5;} else{$souryoukei = "$SOUwari5";} } } $SOURYOUHYOUZIBASHO = "$SOUkoumokuname$souryoukei\円"; $SOURYOUHYOUZIBASHO2 = "$SOUkoumokuname = $souryoukei\円\n"; @ichiritu[1] = "$souryoukei"; } else { $SOURYOUHYOUZIBASHO = "$SOUkoumokuname@ichiritu[1]\円"; $SOURYOUHYOUZIBASHO2 = "$SOUkoumokuname = @ichiritu[1]\円\n"; if($SOUSEIKYU eq "2" and $koumokuumusou eq "1") { $SOURYOUHYOUZIBASHO = ""; $SOURYOUHYOUZIBASHO2 = ""; } } if($rapping ne "") { @rap = split(/\:/, $rapping); @rap[1] = split(/\円/, @rap[1]); if(@rap[1] eq "無料" or @rap[1] eq "") { @rap[1] = "0"; } $RAPKOUMOKUhyouzi = "$RAPPINGgoukei@rap[1]\円"; $RAPTR = "ラッピング方法$rapping"; $RAPKOUMOKUhyouzi2 = "$RAPPINGgoukei = @rap[1]\円\n"; $rappingran = "ラッピング方法 = $rapping\n"; } if(@oshiharai[1] eq "1") { @daibikitesuuWAKE_1 = split(/\*/, $daibikitesuuWAKE_1); $count = 0; while($count < @daibikitesuuWAKE_1) { if(@daibikitesuuWAKE_1[$count] ne "") { @daitesuucheck = split(/\:/, @daibikitesuuWAKE_1[$count]); if($tesu_kei_how_1 eq "税抜き") { $SOUGOUKEIprice = $goukei; } elsif($tesu_kei_how_1 eq "税込み") { $SOUGOUKEIprice = $daigoukei; } else { $SOUGOUKEIprice = $daigoukei + @ichiritu[1] + @rap[1]; } if($SOUGOUKEIprice >= @daitesuucheck[0]) { @shousuu_check = split(/\./, @daitesuucheck[1]); if(@shousuu_check[1] ne "") { $daibikitesuu = $SOUGOUKEIprice * @daitesuucheck[1]; $daibikitesuu = sprintf("%.0d",$daibikitesuu); } else { $daibikitesuu = "@daitesuucheck[1]"; } } } $count++; } $tesuumei = "$tesu_name_1"; $tesuumei2 = "$tesu_name_1"; } if(@oshiharai[1] eq "2") { @daibikitesuuWAKE_2 = split(/\*/, $daibikitesuuWAKE_2); $count = 0; while($count < @daibikitesuuWAKE_2) { if(@daibikitesuuWAKE_2[$count] ne "") { @daitesuucheck = split(/\:/, @daibikitesuuWAKE_2[$count]); if($tesu_kei_how_2 eq "税抜き") { $SOUGOUKEIprice = $goukei; } elsif($tesu_kei_how_2 eq "税込み") { $SOUGOUKEIprice = $daigoukei; } else { $SOUGOUKEIprice = $daigoukei + @ichiritu[1] + @rap[1]; } if($SOUGOUKEIprice >= @daitesuucheck[0]) { @shousuu_check = split(/\./, @daitesuucheck[1]); if(@shousuu_check[1] ne "") { $daibikitesuu = $SOUGOUKEIprice * @daitesuucheck[1]; $daibikitesuu = sprintf("%.0d",$daibikitesuu); } else { $daibikitesuu = "@daitesuucheck[1]"; } } } $count++; } $tesuumei = "$tesu_name_2"; $tesuumei2 = "$tesu_name_2"; } if(@oshiharai[1] eq "3") { @daibikitesuuWAKE_3 = split(/\*/, $daibikitesuuWAKE_3); $count = 0; while($count < @daibikitesuuWAKE_3) { if(@daibikitesuuWAKE_3[$count] ne "") { @daitesuucheck = split(/\:/, @daibikitesuuWAKE_3[$count]); if($tesu_kei_how_3 eq "税抜き") { $SOUGOUKEIprice = $goukei; } elsif($tesu_kei_how_3 eq "税込み") { $SOUGOUKEIprice = $daigoukei; } else { $SOUGOUKEIprice = $daigoukei + @ichiritu[1] + @rap[1]; } if($SOUGOUKEIprice >= @daitesuucheck[0]) { @shousuu_check = split(/\./, @daitesuucheck[1]); if(@shousuu_check[1] ne "") { $daibikitesuu = $SOUGOUKEIprice * @daitesuucheck[1]; $daibikitesuu = sprintf("%.0d",$daibikitesuu); } else { $daibikitesuu = "@daitesuucheck[1]"; } } } $count++; } $tesuumei = "$tesu_name_3"; $tesuumei2 = "$tesu_name_3"; } if(@oshiharai[1] eq "4") { @daibikitesuuWAKE_4 = split(/\*/, $daibikitesuuWAKE_4); $count = 0; while($count < @daibikitesuuWAKE_4) { if(@daibikitesuuWAKE_1[$count] ne "") { @daitesuucheck = split(/\:/, @daibikitesuuWAKE_4[$count]); if($tesu_kei_how_4 eq "税抜き") { $SOUGOUKEIprice = $goukei; } elsif($tesu_kei_how_4 eq "税込み") { $SOUGOUKEIprice = $daigoukei; } else { $SOUGOUKEIprice = $daigoukei + @ichiritu[1] + @rap[1]; } if($SOUGOUKEIprice >= @daitesuucheck[0]) { @shousuu_check = split(/\./, @daitesuucheck[1]); if(@shousuu_check[1] ne "") { $daibikitesuu = $SOUGOUKEIprice * @daitesuucheck[1]; $daibikitesuu = sprintf("%.0d",$daibikitesuu); } else { $daibikitesuu = "@daitesuucheck[1]"; } } } $count++; } $tesuumei = "$tesu_name_4"; $tesuumei2 = "$tesu_name_4"; } if(@oshiharai[1] eq "5") { @daibikitesuuWAKE_5 = split(/\*/, $daibikitesuuWAKE_5); $count = 0; while($count < @daibikitesuuWAKE_5) { if(@daibikitesuuWAKE_5[$count] ne "") { @daitesuucheck = split(/\:/, @daibikitesuuWAKE_5[$count]); if($tesu_kei_how_5 eq "税抜き") { $SOUGOUKEIprice = $goukei; } elsif($tesu_kei_how_5 eq "税込み") { $SOUGOUKEIprice = $daigoukei; } else { $SOUGOUKEIprice = $daigoukei + @ichiritu[1] + @rap[1]; } if($SOUGOUKEIprice >= @daitesuucheck[0]) { @shousuu_check = split(/\./, @daitesuucheck[1]); if(@shousuu_check[1] ne "") { $daibikitesuu = $SOUGOUKEIprice * @daitesuucheck[1]; $daibikitesuu = sprintf("%.0d",$daibikitesuu); } else { $daibikitesuu = "@daitesuucheck[1]"; } } } $count++; } $tesuumei = "$tesu_name_5"; $tesuumei2 = "$tesu_name_5"; } if(@oshiharai[2] eq "1") { @debitesuu = split(/\./, $debitesuu); if($debi eq "税抜き") { if(@debitesuu[1] ne "") { $debitesuukei = $goukei * $debitesuu; } else { $debitesuukei = $debitesuu; } } if($debi eq "税込み") { if(@debitesuu[1] ne "") { $debitesuukei = $daigoukei * $debitesuu; } else { $debitesuukei = $debitesuu; } } if($debi eq "総合計") { $daigoukei2 = $goukei + $tax + $daibikitesuu + @ichiritu[1] + @rap[1]; if(@debitesuu[1] ne "") { $debitesuukei = $daigoukei2 * $debitesuu; } else { $debitesuukei = $debitesuu; } } if(@debitesuu[1] ne "") { $debitesuukei=sprintf("%.0d",$debitesuukei); } $etesuu = "$debitesuukei"; } if(@oshiharai[2] eq "2") { @kuretesuu = split(/\./, $kuretesuu); if($kure eq "税抜き") { if(@kuretesuu[1] ne "") { $kuretesuukei = $goukei * $kuretesuu; } else { $kuretesuukei = $kuretesuu; } } if($kure eq "税込み") { if(@kuretesuu[1] ne "") { $kuretesuukei = $daigoukei * $kuretesuu; } else { $kuretesuukei = $kuretesuu; } } if($kure eq "総合計") { $daigoukei2 = $goukei + $tax + $daibikitesuu + @ichiritu[1] + @rap[1]; if(@kuretesuu[1] ne "") { $kuretesuukei = $daigoukei2 * $kuretesuu; } else { $kuretesuukei = $kuretesuu; } } if(@kuretesuu[1] ne "") { $kuretesuukei=sprintf("%.0d",$kuretesuukei); } $etesuu = "$kuretesuukei"; } if($paymentrate ne "") { $KEISANhowto = "
[$paymentrateを掛けた金額]"; if($paymentratekubun eq "税抜き") { $paymenttesuu = $goukei * $paymentrate; } if($paymentratekubun eq "税込み") { $paymenttesuu = $daigoukei * $paymentrate; } if($paymentratekubun eq "総合計") { $shoukeidaigoukei = $goukei + $tax + @ichiritu[1] + @rap[1]; $paymenttesuu = $shoukeidaigoukei * $paymentrate; } $paymenttesuu=sprintf("%.0d",$paymenttesuu); } if ($paymentmu == 0 and $paymentmu ne "") { $paymenttesuu = "0"; } if ($paymentmu != 0 and $paymentmu ne "") { if ($paymentmukubun eq "税抜き") { if ($goukei >= $paymentmu) { $paymenttesuu = "0"; } } if ($paymentmukubun eq "税込み") { if ($daigoukei >= $paymentmu) { $paymenttesuu = "0"; } } } if(@oshiharai[1] ne "" and @oshiharai[1] ne "7") { if (@oshiharai[1] eq "6") { $shousaisetumei = ""; if($paymentrate ne "" and $paymentratekubun eq "総合計") { $shousaisetumei = "
(税込み金額+諸経費を対象)$KEISANhowto"; } if($paymentrate ne "" and $paymentratekubun ne "総合計") { $shousaisetumei = "
($paymentratekubun商品代金を対象)$KEISANhowto"; } $tesuumei = "ペイメント手数料$shousaisetumei"; $tesuumei2 = "ペイメント手数料"; $tesuuryoukin = "$paymenttesuu"; } else { $tesuuryoukin = "$daibikitesuu"; } $TESUKOUMOKUhyouzi = "$tesuumei$tesuuryoukin\円"; $TESUKOUMOKUhyouzi2 = "$tesuumei2 = $tesuuryoukin\円\n"; } if(@oshiharai[2] ne "") { $TESUkureKOUMOKUhyouzi = "別途カード手数料$etesuu\円"; $TESUkureKOUMOKUhyouzi2 = "別途カード手数料 = $etesuu\円\n"; } if(@oshiharai[1] ne "" and @oshiharai[1] ne "7") { if(@oshiharai[2] ne "") { $soudaigoukei = $goukei + $tax + @ichiritu[1] + @rap[1] + $tesuuryoukin + $etesuu; } else { $soudaigoukei = $goukei + $tax + @ichiritu[1] + @rap[1] + $tesuuryoukin; } } else { $soudaigoukei = $goukei + $tax + @ichiritu[1] + @rap[1]; } } ## 著作表示 ######################################### #____________________________________________________ $CHOSAKu =< Putiban Cart Rev(vol.20050618)

CH ## 入力エラー ####################################### #____________________________________________________ sub error1 { ($error,@error_fields) = @_; print < エラー


$_[0]

$_[1]

HTML exit; } sub error2 { ($error,@error_fields) = @_; print < エラー


$_[0]

$_[1]

HTML exit; } sub error3 { print < エラー


Error

以下の内容を正しくご入力/ご選択ください

$ERRORKOUMOKU
HTML exit; } sub error4 { print <

$_[0]

$_[1]

HTML exit; } sub printDataErrorPage3 { ($error,@error_fields) = @_; COOKIE_TIME(); print "Set-Cookie: "; print "putiban1=; expires=$Cdate"; print "\n"; print "Set-Cookie: "; print "putiban2=; expires=$Cdate"; print "\n"; print < データエラー
$_[0]
$_[1]
クッキーデータ初期化しました
HTML exit; } ## 変換処理 ######################################### #____________________________________________________ sub henkanShori { $chekicheki=~ s/\'|\"|\$|\;|\,|\*|\!|\+//g; $chekicheki=~ s/\ //g; $chekicheki=~ s/\ソ\|\表\|\能\|\予\|\申\|\十\|\構\|\暴\|\圭\|\貼\//g; } sub henkanShori2 { $chekicheki=~ s/\'|\"|\$|\;|\:|\,|\*|\!|\+//g; $chekicheki=~ s/\ //g; $chekicheki=~ s/\ソ\|\表\|\能\|\予\|\申\|\十\|\構\|\暴\|\圭\|\貼\//g; } sub henkanShori3 { $chekicheki=~ s/\,/,/g; $chekicheki=~ s/\&/&/g; $chekicheki=~ s/\=/=/g; } sub henkanShori4 { $chekicheki=~ s/\,/,/g; } sub henkanShori5 { $chekicheki=~ s/\'|\"|\$|\;|\,|\!|\+//g; $chekicheki=~ s/\ //g; $chekicheki=~ s/\ソ\|\表\|\能\|\予\|\申\|\十\|\構\|\暴\|\圭\|\貼\//g; } sub COOKIE_TIME { $COOKIE_time = "30"; @mon_str = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); @wdy_str = qw(Sun Mon Tue Wed Thu Fri Sat); $life = $COOKIE_time * 24 * 60 * 60; ($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime(time + $life); $Cdate = sprintf("%s, %02d-%s-%04d %02d:%02d:%02d GMT", $wdy_str[$wday], $mday, $mon_str[$mon], $year + 1900, $hour, $min, $sec); } sub COOK_READ { $Cook_data[0] = ""; $Shouhinfile[0] = ""; $putiban = ""; if ($ENV{'HTTP_COOKIE'} ne "") { @cookie = split(/; /, $ENV{'HTTP_COOKIE'}); ($name, $val) = split(/=/, @cookie[0]); $pname = "putiban1"; if($pname eq "$name") { $putiban[0] = "$val"; } if("$putiban[0]" ne "" and "$putiban[0]" ne ";") { @Putiban_cook = split(/\%/, $putiban[0]); $Shouhinfile[0] = "@Putiban_cook[0]"; $Cook_data[0] = "@Putiban_cook[1]"; } } } sub COOKIE_WRITE { print "Set-Cookie: "; print "putiban1=$Shouhinfile[0]%$Cook_data[0]; expires=$Cdate"; print "\n"; print "Set-Cookie: "; print "putiban2=; expires=$Cdate"; print "\n"; } 1;