バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > EC-CUBE3.0で同一商品、個数ごとの送料の設定

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
shirout
投稿日時: 2018/1/5 3:14
対応状況: −−−
新米
登録日: 2018/1/5
居住地:
投稿: 2
EC-CUBE3.0で同一商品、個数ごとの送料の設定
はじめまして、EC-CUBE初心者です。
送料設定のカスタマイズ方法のアドバイスをお願いしたく、
書き込みさせていただきました。

こちらのフォームを何度か拝見させていただき、設定しましたが、お手上げ状態です。どうかよろしくお願いいたします。


<目的>

同じ商品を複数購入しても送料が1個分の送料の設定になっていて、
それを数量分の送料の設定にできれば、、と思っています。

<やってみた方法>


ShoppingService.php
の559行目あたり、

$productDeliveryFeeTotal = 0;
if ($this->BaseInfo->getOptionProductDeliveryFee() === Constant::ENABLED) {
$productDeliveryFeeTotal = $ProductClass->getDeliveryFee() * $quantity;
}

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


をこちらのフォームで同じような現象で投稿している人参考にしながら、

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

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


に変更したところ
送料が個数よりも1個分多く設定されてしまい困っています。


大変お手数をおかけいたしますが、
ご教授お願いいたします。



[EC-CUBE] 3.0.15、新規インストール
[レンタルサーバ] Xserver
[OS] OSX Yosemite 10.10.5
[PHP] 7.0.18
[データベース] MySQL 5.7.16
[WEBサーバ] Apache
[ブラウザ] Safari
minori
投稿日時: 2018/1/5 18:52
対応状況: −−−
常連
登録日: 2017/10/12
居住地:
投稿: 40
Re: EC-CUBE3.0で同一商品、個数ごとの送料の設定
都道府県ごとに送料設定されていたりしませんか?

動作確認までできていませんが、

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

の$Shipping->getShippingDeliveryFee()で取得した値が0ではなく、
すでに送料計算された値が入っていたのではないでしょうか。

該当のメソッド「getNewShipmentItem」が呼び出される前に
一度送料計算するメソッド「setShippingDeliveryFee」が
呼び出されています。

/**
 * 配送料金の設定
 *
 * @param Shipping $Shipping
 * @param Delivery|null $Delivery
 */
public function setShippingDeliveryFee(Shipping $Shipping, Delivery $Delivery = null)
{
    // 配送料金の設定
    if (is_null($Delivery)) {
        $Delivery = $Shipping->getDelivery();
    }
    $deliveryFee = $this->app['eccube.repository.delivery_fee']->findOneBy(array('Delivery' => $Delivery, 'Pref' => $Shipping->getPref()));

    $Shipping->setDeliveryFee($deliveryFee);
    $Shipping->setDelivery($Delivery);

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

    $Shipping->setShippingDeliveryFee($deliveryFee->getFee() + $productDeliveryFeeTotal);
    $Shipping->setShippingDeliveryName($Delivery->getName());
}


ここで都道府県の送料を取得して
$Shipping->setShippingDeliveryFeeで設定しているように
見えます。

このあたりの処理を確認してみては
いかがでしょうか。
shirout
投稿日時: 2018/2/3 2:10
対応状況: −−−
新米
登録日: 2018/1/5
居住地:
投稿: 2
Re: EC-CUBE3.0で同一商品、個数ごとの送料の設定
大変お返事が遅くなってしまい申し訳ありません。
やっと作業をする時間ができたので報告です。

minoriさんのアドバイスを参考に、調整してみたところ、
送料が余計に1個分多くならなくなりました!
大変ありがとうございました!助かりました、、、。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.