バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

 > フロント機能 > EC CUBE3.0の送料計算について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
madoka
投稿日時: 2016/2/15 10:24
対応状況: −−−
半人前
登録日: 2016/2/15
居住地:
投稿: 23
EC CUBE3.0の送料計算について
はじめまして、EC CUBE初心者です。

送料計算について教えていただきたいのですが、
商品1点づつに送料を加算(購入個数×送料)したいのですが、どこをカスタマイズすれば可能でしょうか?

どなたかご教授いただけたらと思います。
よろしくお願いします。
shhirose
投稿日時: 2016/2/15 19:05
対応状況: −−−
一人前
登録日: 2014/4/24
居住地:
投稿: 94
Re: EC CUBE3.0の送料計算について
どこにどのように表示したいのかわかりませんが、
基本情報設定 > ショップマスター の「商品ごとの送料設定を有効にする」を有効にすることで実現できないでしょうか。

購入確認画面の送料が「商品に設定した送料 * 購入数」となるかと思います。
madoka
投稿日時: 2016/2/15 19:28
対応状況: −−−
半人前
登録日: 2016/2/15
居住地:
投稿: 23
Re: EC CUBE3.0の送料計算について
わかりづらい説明で申し訳ありません。
その設定ですと個別設定した送料×商品個数+地域別送料といった計算になってしまいます。
地域別に設定している送料
例えば商品価格が5000円で送料が大阪1000円、東京1300円だとしたら

大阪の人が商品2点購入した場合
5,000円+1,000円×2=12,000円

東京の人が商品2点購入した場合
5,000円+1,300円×2=12,600円

としたいのです。

色々試してみているのですが能力の限界っぽいです...
今、ShoppingService.php の612行目の
// 配送料合計金額
$Order->setDeliveryFeeTotal($this->getShippingDeliveryFeeTotal($shippings));

あたりを弄ってどうにかできないかと奮闘しているのですが...
$ShipmentItem->getQuantity()
$quantity = $item->getQuantity();
などのQuantityを取得して掛け算すればできそうなんですが、
どうやってもエラーになってしまって...
見当違いな場所弄ってしまってるんでしょうか?
madoka
投稿日時: 2016/2/15 21:37
対応状況: −−−
半人前
登録日: 2016/2/15
居住地:
投稿: 23
Re: EC CUBE3.0の送料計算について
とりあえずわからないなりに弄りまくって
ShoppingService.php 173行目の

$Order->setDeliveryFeeTotal($this->getShippingDeliveryFeeTotal($Order->getShippings()));


の部分を下記のように書き換えたところ実現できました。

$Order->setDeliveryFeeTotal($this->getShippingDeliveryFeeTotal($Order->getShippings())*$this->orderService->getTotalQuantity($Order));


しかし、ページをリロードすると送料が1個分に戻ってしまいます...
どうすればリロードしても維持する事ができるようになりますか?

ご教授願えたらと思います。
shhirose
投稿日時: 2016/2/15 21:59
対応状況: −−−
一人前
登録日: 2014/4/24
居住地:
投稿: 94
Re: EC CUBE3.0の送料計算について
送料を「配送先別の送料 * 商品数」として、商品ごとの送料は考慮しないようにしたいということで良いでしょうか。
以下はその内容でのカスタマイズ方法です。

ShoppingService の getNewShipmentItem という関数で
引用:

// 商品ごとの配送料合計
$productDeliveryFeeTotal = 0;
if (!is_null($this->BaseInfo->getOptionProductDeliveryFee())) {
$productDeliveryFeeTotal = $ProductClass->getDeliveryFee() * $quantity;
}

$Shipping->setShippingDeliveryFee($Shipping->getShippingDeliveryFee() + $productDeliveryFeeTotal);

という部分を以下のように書き換えます。


$productDeliveryFeeTotal = $Shipping->getDeliveryFee()->getFee() * $quantity;

$Shipping->setShippingDeliveryFee($Shipping->getShippingDeliveryFee() + $productDeliveryFeeTotal);


$Shipping->getDeliveryFee()->getFee() が地域別送料になります。
これで購入確認画面へ始めてきた時の計算がされます。

住所情報が変更された場合は、
ShoppingService の setShippingDeliveryFee という関数で
引用:

// 商品ごとの配送料合計
$productDeliveryFeeTotal = 0;
if (!is_null($this->BaseInfo->getOptionProductDeliveryFee())) {
$productDeliveryFeeTotal += $this->getProductDeliveryFee($Shipping);
}

$Shipping->setShippingDeliveryFee($deliveryFee->getFee() + $productDeliveryFeeTotal);

という部分を以下のように書き換えます。


$productDeliveryFeeTotal = 0;
foreach ($Shipping->getShipmentItems() as $ShipmentItem) {
    productDeliveryFeeTotal += $Shipping->getDeliveryFee()->getFee() * $ShipmentItem->getQuantity();
}

$Shipping->setShippingDeliveryFee($productDeliveryFeeTotal);


テストしていないのでうまくいくかわかりませんが、こんな形で行けるかと思います。
madoka
投稿日時: 2016/2/15 22:48
対応状況: −−−
半人前
登録日: 2016/2/15
居住地:
投稿: 23
Re: EC CUBE3.0の送料計算について
ありがとうございます!
こちらもバッチリ動作しました!

また見当違いの無理矢理コードを作ってしまっていたんですね...
こっちは結構いけたと思っていたんですが...
全然ダメですね(^^;
勉強になります。

代引のコードの方と良い、両方とも本当に助かりました。
ありがとうございました。
TNKSNJ
投稿日時: 2018/9/1 13:09
対応状況: −−−
新米
登録日: 2018/9/1
居住地:
投稿: 1
Re: EC CUBE3.0の送料計算について
こちらのフォーラムを参考に設定してみたのですが、配送方法を切り替えると商品数が乗算されない値にリセットされます。

getShippingDeliveryFeeTotal関数で商品数を掛ければ配送方法の切り替えで正常になりますが、逆に商品数変更で配送先別の送料 * 商品数 * 2になります。

修正方法がわかりましたらご教授ください。
よろしくお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,872名です
総投稿数は109,999件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
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.