質問 > フロント機能 > 2.11 配送先毎に送料を加算したい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
jsl |
投稿日時: 2011/7/21 16:03
対応状況: −−−
|
半人前 登録日: 2011/7/15 居住地: 投稿: 14 |
2.11 配送先毎に送料を加算したい 現在、2.11.1を使用させて頂き構築を行っております。
行いたい処理は、複数配送先の際に1件の配送先が5,250円を超えた場合のみ送料を無料にしたいと考えております。 A 送り先1商品合計5,250円以上 無料 B 送り先1商品合計1,000円+送り先2商品合計5,250円 送り先2のみ送料無料 現在送料設定は県別に設定しております。 送料無料条件には空欄にしてあります。 そこで、配送先毎に送料無料設定を行いたく下記サイトを参考にさせて頂きながら苦戦しております。 http://ameblo.jp/webmage/entry-10952620044.html 行った処理は、 // 送料無料チェック // 合計を計算 の間に if ( count($_SESSION['shipping']) > 1 ){ //とりあえず、$results['deliv_fee']を0にしておく $results['deliv_fee'] = 0; //人数分の繰り返し foreach ( $_SESSION['shipping'] as $deli) { //配送先別の商品総額も初期化 $total_indiv = 0; $temp_list = $deli['shipment_item']; $item = array_keys( $temp_list );//商品のコードを配列から取得 //個別の購入金額が5250円以上なら、送料無料 if ( $total_indiv > 5249 ) { $deliv_fee = 0; } $results['deliv_fee'] += $deliv_fee; }//人数分の繰り返し } 上記のような処理を行うと、 A 送り先1商品合計5,250円以上 県別料金が適用 B 送り先1商品合計1,000円+送り先2商品合計5,250円 どちらも送料無料 という処理になってしまいます。 ご教授いただければ助かります。 よろしくお願いいたします。 |
AMUAMU |
投稿日時: 2011/7/25 16:31
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 2.11 配送先毎に送料を加算したい 斜め読みですが参考先も全部を示しているわけではないので、必要な処理を補完しないとダメかと思います。
コードを軽く見ると $total_indiv への代入処理も見当たらないですし、ちょっとルーチンとして不明です。 1つずつステップ毎に見直すことをオススメします。
|
jsl |
投稿日時: 2011/7/29 10:40
対応状況: −−−
|
半人前 登録日: 2011/7/15 居住地: 投稿: 14 |
Re: 2.11 配送先毎に送料を加算したい >AMUAMU様
ご返信ありがとうございます。 ちょっと苦戦しておりますがもう少しがんばってみます。 |
webmage |
投稿日時: 2011/8/3 21:14
対応状況: −−−
|
半人前 登録日: 2011/7/1 居住地: 沖縄 投稿: 16 |
Re: 2.11 配送先毎に送料を加算したい 紹介されていたブログを書いている張本人です。
人数分の繰り返しの中に、商品分の繰り返しをネストして、個別の購入金額を出す処理($total_indivに代入する処理)がないですね。 まずはそこからです。 僕のブログはあまり参考にならないかもしれません。 個別送料設定、メール便同梱数など、DBの構造から弄ってカスタマイズしちゃってますから。 僕は以下のような処理をしています。 ---------------------------------------------------- if ( count($_SESSION['shipping']) > 1 ){ $results['deliv_fee'] = 0; //何人目かを記録しておくためのフラグ $multi = 0; 人数分の処理{ $temp_list = $deli['shipment_item']; $item = array_keys( $temp_list );//商品のコードを配列から取得 商品分の処理{ $item_code = $item[ループ数]; $item_codeから商品の値段を取得する処理 $total_indiv += 商品の値段 * $deli['shipment_item'][$quant]['quantity']; } 個別の送料計算 $total_indivが設定値を超えていたら送料無料処理 } //送料と合計金額をセッションに保存 $_SESSION['multi_deliv'][$multi]['deliv_fee'] = $deliv_fee; $_SESSION['multi_deliv'][$multi]['total_indiv'] = $total_indiv; $multi++; $results['deliv_fee'] += $deliv_fee; } ---------------------------------------------------- メール便や同梱数などの処理は省いてありますが、だいたいこんな感じです。 個別送料と購入金額をセッションに保存しているのは、後で呼び出すとき楽だから。 例えば"data/Smarty/templates/default/shopping/confirm.tpl"で <!--{$smarty.session.multi_deliv.$name.deliv_fee}-->(送料) <!--{$smarty.session.multi_deliv.$name.total_indiv}--> (金額) こんな感じで呼び出して使ってます。 |
jsl |
投稿日時: 2011/8/17 17:16
対応状況: −−−
|
半人前 登録日: 2011/7/15 居住地: 投稿: 14 |
Re: 2.11 配送先毎に送料を加算したい >webmage様
ご教授いただきありがとうございます。 ご教授いただきました情報を元に再度チャレンジしたいと思います。 今後ともよろしくお願い致します。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |