掲示板に戻る




Cart MAX ver.7.2の送料変更について 投稿者: mayu
お世話になっております。
以前に送料変更をご教授いただき、今現在は下記の設定で使用しております。

else{
     if(($toku_count > 1) && ($o_count <= 1)){
          $p=1000 * $toku_count;
     }
elsif($toku_count == 1){
$p=1000 * $toku_count;
}
     else{
          $p=950;
     }
現在は、特定商品とその他の商品と2種の送料で使用しておりますが、
その他の商品の送料「¥950」はそのままで、
特定商品の中でも送料をさらに4種に「特小・小・中・大」と分類したいのです。
お手間が掛かりそうでしたら、別途ご依頼させていただきます。
よろしくお願いいたします。
No.289972025/6/12(Thu) 13:48:18 Res


Re: Cart MAX ver.7.2の送料変更について 投稿者: えふ
特定商品の送料が
特小 1000円
小 1100円
中 1200円
大 1300円
とすると
特小2つと中1つの購入があったときは送料は
1000×2+1200×1=3200円
にしたいということでしょうか。
No.289982025/6/14(Sat) 1:21:30 Res


Re^2: Cart MAX ver.7.2の送料変更について 投稿者: mayu
その通りです。
その他の商品1つとそれぞれ特定商品1つの購入があったときは
それぞれの特定商品の送料を反映したいです。
以前は、商品登録「admin.cgi」ファイルだと思いますのところで
「特定商品」という項目を作成していただいて、
チェックボックスで特定商品かどうかを指定していました。
No.289992025/6/16(Mon) 14:36:41 Res


Re^3: Cart MAX ver.7.2の送料変更について 投稿者: えふ
cgi/lib/common2.cgi
の一番下の

1;
の上に

%TOKU=(
'xs'=>1000,
's'=>1100,
'm'=>1200,
'l'=>1300,
);


@toku_keys=('xs','s','m','l');

%TOKU_N=(
'n'=>'その他',
'xs'=>'特小',
's'=>'小',
'm'=>'中',
'l'=>'大',
);

と追加

'xs'=>1000,
's'=>1100,
'm'=>1200,
'l'=>1300,
ここのところに
上から
特小



の料金を設定します。

cgi/admin.cgiの
1553行

<tr>
<td>特定商品</td><td><input type="checkbox" name="cool" value="1"${ck_c}> 特定商品にする</td>
</tr>





EOM
$tokuline="";
my $k;
my $v;
unshift(@toku_keys,"");
foreach $k(@toku_keys){
     $ck_toku="";
     if($cool){
          if($k eq $cool){
               $ck_toku=" checked";
          }
     }
     $v=$k;
     if($k eq ""){
          $k="n";
     }
     $tokuline.="<input type=\"radio\" name=\"cool\" value=\"$v\"${ck_toku}>$TOKU_N{$k} ";
}
print "<tr><td>特定商品</td><td>";
print $tokuline;
print "</td>
print <<EOM;

と変更
管理画面の商品登録のところに
特定商品のラジオボタンがでますので
編集で特定商品を登録してください。
特定商品をクリアするときは「その他」にチェックを入れて登録してください。
特小から大までは登録した値にチェックが付きますが、
「その他」はチェックがつきません。

商品のページのHTMLソースを見て、
<input type="hidden" name="cool" value="xs">
のように特定商品が登録されていることを確認してください。


cgi/lib/functions.plの94行の
$toku_count+=$amount;
の下に
$TOKU_CNT{$cl}+=$amount;
と追加


225行の
     if(($toku_count > 1) && ($o_count <= 1)){
          $p=950 * $toku_count;
     }
     elsif(($toku_count == 1) && ($o_count <= 1)){
          $p=1000 * $toku_count;
     }
     else{
          $p=950;
     }
この部分を

     if(($toku_count > 1) && ($o_count <= 1)){
          foreach(@toku_keys){
               $p+=$TOKU{$_} * $TOKU_CNT{$_};
          }
     }
     elsif(($toku_count == 1) && ($o_count <= 1)){
          $p=1000 * $toku_count;
     }
     else{
          $p=950;
     }
     
と変更
以上です。
No.290002025/6/20(Fri) 2:46:51 Res


Re^4: Cart MAX ver.7.2の送料変更について 投稿者: mayu
ご対応・ご教授いただきましてありがとうございます。
ご教授いただきました内容で変更してみます。
No.290012025/6/20(Fri) 14:57:45 Res


Re^4: Cart MAX ver.7.2の送料変更について 投稿者: mayu
> cgi/admin.cgiの
> 1553行
>
> <tr>
> <td>特定商品</td><td><input type="checkbox" name="cool" value="1"${ck_c}> 特定商品にする</td>
> </tr>
>
> を
>
> EOM
> $tokuline="";
> my $k;
> my $v;
> unshift(@toku_keys,"");
> foreach $k(@toku_keys){
>      $ck_toku="";
>      if($cool){
>           if($k eq $cool){
>                $ck_toku=" checked";
>           }
>      }
>      $v=$k;
>      if($k eq ""){
>           $k="n";
>      }
>      $tokuline.="<input type=\"radio\" name=\"cool\" value=\"$v\"${ck_toku}>$TOKU_N{$k} ";
> }
> print "<tr><td>特定商品</td><td>";
> print $tokuline;
> print "</td>
> print <<EOM;
>
> と変更
上記のように変更したのですが、管理画面を開こうとしたらエラーが出て
管理画面が開けませんでした。「505gi/admin.cgiの
> 1553行
>
> <tr>
> <td>特定商品</td><td><input type="checkbox" name="cool" value="1"${ck_c}> 特定商品にする</td>
> </tr>
>
> を
>
> EOM
> $tokuline="";
> my $k;
> my $v;
> unshift(@toku_keys,"");
> foreach $k(@toku_keys){
> $ck_toku="";
> if($cool){
> if($k eq $cool){
> $ck_toku=" checked";
> }
> }
> $v=$k;
> if($k eq ""){
> $k="n";
> }
> $tokuline.="<input type=\"radio\" name=\"cool\" value=\"$v\"${ck_toku}>$TOKU_N{$k} ";
> }
> print "<tr><td>特定商品</td><td>";
> print $tokuline;
> print "</td>
> print <<EOM;
>
> と変更
上記のように変更したのですが、管理画面を開こうとしたらエラーが出て
管理画面が開けませんでした。
どのようにしたら良いでしょうか?
よろしくお願いいたします。
No.290022025/6/20(Fri) 17:28:20 Res