バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品規格べつに送料計算はできますか?

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
joes
投稿日時: 2013/7/16 19:54
対応状況: −−−
新米
登録日: 2010/10/15
居住地:
投稿: 6
商品規格べつに送料計算はできますか?
[EC-CUBE] 2.12.2
[レンタルサーバ] kagoya サーバ
[OS] CentOS
[PHP] PHP 5.2.17
[データベース] PostgreSQL 8.1.23
[WEBサーバ] Apache/2.2.22
[ブラウザ] Google Chrome 25.0.1364.97 m

いつもお世話になっております、joesと申します。

今回は 「1回のカートで発送日毎に送料計算がしたい!」という壁にぶつかり、ご質問させていただきます。例えばですが、

商品A⇒7月20日 に2個発送
商品B⇒7月25日 に3個発送  したい場合

デフォルトでは下記?か?のどちらかを選択だと思います。 
?1回のカートで1回の配送業者計算  または
?商品ごとの送料計算

つまり 1回分の発送料しか頂けないか、5回分の発送料を頂いてしまいます。

そこで今考えてるのが、
商品規格1に '日付' を登録し、
SC_CartSession.phpでclasscategory_id1を取得して
classcategory_id1が同じ場合はそのままの送料で、違う場合は追加で倍の送料を頂くという事を考えていますが可能でしょうか?

function adjustSessionProductsClass に'classcategory_id1' => true,を追記して

// 配送業者の送料を加算
if (OPTION_DELIV_FEE == 1
&& !SC_Utils_Ex::isBlank($deliv_pref)
&& !SC_Utils_Ex::isBlank($deliv_id)) {
$results['deliv_fee'] += $this->sfGetDelivFee($deliv_pref, $deliv_id);
}

の $this->sfGetDelivFee($deliv_pref, $deliv_id);のあたりをif文で少しいじればできるのかな?なんて思ってますが、いまいち書き方がピンときてません。
どなたか、「こう書けばいいよ!」という方もしくは、「もっとこうした方がいい方法だ!」という方いらっしゃいましたら教えて頂けませんでしょうか?

どうぞ宜しくお願いしますm(。・_・。)m
AMUAMU
投稿日時: 2013/7/22 18:54
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: 商品規格べつに送料計算はできますか?
このようなパターンは色々な実現方法があるので一概に言えないですが自分でやるとして、規格に日付を入れる方式で考えると

計算部分で参考にするのは、calculate関数の
// 商品ごとの送料を加算
のコメント付近あたりかなと思います。

カートの中の商品状態を
$cartItems = $this->getCartList($productTypeId);
で取得した$cartItemsを操作して、計算条件に一致するか確認する感じかと思います。

その結果で直後の「配送業者の送料を加算」部分に対してバイアスをかける感じだと思います。


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

[url=h

joes
投稿日時: 2013/7/25 2:27
対応状況: −−−
新米
登録日: 2010/10/15
居住地:
投稿: 6
Re: 商品規格べつに送料計算はできますか?
AMUAMU様、ご返信ありがとうございます!
またお返事が遅くなり申し訳ありませんでした。

アドバイスを受けて試行錯誤してます。
一応$cartItemsの中を見まして(dumpと言うんでしょうか?)使えそうなものを探すと、classcategory_name1(日付) や classcategory_id1 あたりが使えそうだなという感じです。


また、アドバイスにあった
「その結果で直後の「配送業者の送料を加算」部分に対してバイアスをかける」の部分ですが、

// 商品ごとの送料を加算 の
OPTION_PRODUCT_DELIV_FEE == 1 と 
// 配送業者の送料を加算 の
OPTION_DELIV_FEE == 1を共存(どちらもパラメータ1設定で)させて計算していくという意味で良いでしょうか?


// 商品ごとの送料を加算 の部分で
foreach ($cartItems as $arrItem) {
商品Aの$arrItem['productsClass']['classcategory_name1']は変数A;
商品Bの$arrItem['productsClass']['classcategory_name1']は変数B;}
として、

// 配送業者の送料を加算 の部分で
if(変数A==変数B){送料1つ分}else{送料加算}というイメージでやってます。


ちなみにPHPの書籍を見ながら自分なりに書いて何度もアップしましたが全然ダメな状況ですr(ー_ー;)
送料が0円になったり、送料に変化が見られなかったりです。
やっぱり肝心のphp文の書き方に問題があるようですが(本見ながらやってるんですが…。)。
foreach文で商品AとBの値を引っ張って来れてない気がしてたまりませんr(ー_ー;)

ちょっとここで挫折したくないので、何とか更なるヒントを頂けないでしょうか?

宜しくお願いします!!
joes
投稿日時: 2013/8/19 17:19
対応状況: −−−
新米
登録日: 2010/10/15
居住地:
投稿: 6
Re: 商品規格べつに送料計算はできますか?
上記投稿者です。

どなたかこのスレッドの問題を解決できる方はいらっしゃらないでしょうか?

難しいかもしれませんが、もし分かる方がいたら是非ご教授をお願いします!

個人での質問のためあまりお礼など出来ませんがどうぞ宜しくお願いします!!


yuh
投稿日時: 2013/8/20 10:43
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 商品規格べつに送料計算はできますか?
商品規格別で送料を纏めるのであれば
SC_CartSession.phpのcalculate

        // 商品ごとの送料を加算
        if (OPTION_PRODUCT_DELIV_FEE == 1) {
            $cartItems = $this->getCartList($productTypeId);
			$tmpdeliv_fee = array();
            foreach ($cartItems as $arrItem) {
                $tmpdeliv_fee[$arrItem['productsClass']['product_class_id']] = $arrItem['productsClass']['deliv_fee'];
            }
			$results['deliv_fee'] = array_sum($tmpdeliv_fee);
        }

こんな感じでできると思いますが、joes様の厳密な仕様を把握してないので、要求している仕様と合っているかどうかはわかりません。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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.