バージョン選択

フォーラム

メニュー

オンライン状況

54 人のユーザが現在オンラインです。 (42 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 53
leathess もっと...

サイト内検索

質問 > フロント機能 > 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つずつステップ毎に見直すことをオススメします。


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

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様

ご教授いただきありがとうございます。
ご教授いただきました情報を元に再度チャレンジしたいと思います。

今後ともよろしくお願い致します。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,074名です
総投稿数は110,023件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.