バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > ec-cube3で購入合計金額によって送料無料にしたい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
novarod2
投稿日時: 2019/11/5 16:42
対応状況: −−−
新米
登録日: 2019/11/5
居住地:
投稿: 3
ec-cube3で購入合計金額によって送料無料にしたい
▼テンプレート
[EC-CUBE] 3.0.16
[レンタルサーバ] sakura vps サーバ
[OS] Linux ik1-301-10745
[PHP] 7.1.22
[データベース] MySQL 5.5.60-MariaDB
[WEBサーバ] Apache/2.4.6 (CentOS)
[ブラウザ] chrome, firefox
[導入プラグインの有無]
[カスタマイズの有無]
[現象]

購入金額5000円以上の場合:送料無料したいですが、

カートに商品を入れてご注文内容確認ページで見ると

小計     5,142円
手数料     0円
送料      0円
値引き     -143円
利用ポイント  143 pt
加算ポイント   1 pt

合計 4,999円税込

この状況になります。

ポイント利用して合計が4,999円になりましたげと小計が5,142円などで送料は0円になってます。
ポイント利用して合計が5,000円未満になると設定した送料が追加になるようにはどうすればいいでしょうか?

※設定>ショップマスター>送料設定>送料無料条件(金額)は 5,000円になっています。
追加で下のようにコードも修正して見ましたけとかわらなったので元に戻りました。
/src/Eccube/Service/ShoppingService.php 683行目付近
------------------------------------------------------------------
修正後

public function setDeliveryFreeAmount(Order $Order)
{
// 配送料無料条件(合計金額)
$deliveryFreeAmount = $this->BaseInfo->getDeliveryFreeAmount();
if (!is_null($deliveryFreeAmount)) {
// 合計金額が設定金額以上であれば送料無料
if ($Order->getSubTotal() <= 5000) {
}else{
$Order->setDeliveryFeeTotal(0);

// お届け先情報の配送料も0にセット
$shippings = $Order->getShippings();
foreach ($shippings as $Shipping) {
$Shipping->setShippingDeliveryFee(0);
}
}
}
}


/* 元のコード▼ー------*/
public function setDeliveryFreeAmount(Order $Order)
{
// 配送料無料条件(合計金額)
$deliveryFreeAmount = $this->BaseInfo->getDeliveryFreeAmount();
if (!is_null($deliveryFreeAmount)) {
// 合計金額が設定金額以上であれば送料無料
if ($Order->getSubTotal() >= $deliveryFreeAmount) {
$Order->setDeliveryFeeTotal(0);
// お届け先情報の配送料も0にセット
$shippings = $Order->getShippings();
foreach ($shippings as $Shipping) {
$Shipping->setShippingDeliveryFee(0);
}
}
}
}
umebius
投稿日時: 2019/11/6 9:19
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1363
Re: ec-cube3で購入合計金額によって送料無料にしたい

1. 送料無料の計算は標準では「商品代金」だけで判断されるので、ShoppingService::setDeliveryFreeAmountでポイント利用額(値引き)を計算式に入れてやる必要があります。

2. ポイント利用金額がユーザーによって変更されたタイミングで、
ShoppingService::getAmountを呼んで合計額の更新をする必要があります。


他にも必要な処理があるかもしれませんが、概ね上記になるかと思います。


----------------
EC-CUBE3系4系 カスタマイズ ECのプロがシステム特急案件承ります。
公式インテグレートパートナー エンジニア募集中U-Mebius

novarod2
投稿日時: 2019/11/8 14:27
対応状況: 確認中
新米
登録日: 2019/11/5
居住地:
投稿: 3
Re: ec-cube3で購入合計金額によって送料無料にしたい
umebius 様

ありがとうございます。

変更して見ましたが、

public function setDeliveryFreeAmount(Order $Order)
{
// 配送料無料条件(合計金額)
$deliveryFreeAmount = $this->BaseInfo->getDeliveryFreeAmount();
if (!is_null($deliveryFreeAmount)) {
// 合計金額が設定金額以上であれば送料無料
if ($Order->getSubTotal() + $Order->getAmount >= $deliveryFreeAmount) {
$Order->setDeliveryFeeTotal(0);
// お届け先情報の配送料も0にセット
$shippings = $Order->getShippings();
foreach ($shippings as $Shipping) {
$Shipping->setShippingDeliveryFee(0);
}
}
}
}

問題があるのか変わらないです。
申し上げございませんが、
1、2番のもっと詳しく教えて下さいませんか?
umebius
投稿日時: 2019/11/11 6:37
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1363
Re: ec-cube3で購入合計金額によって送料無料にしたい
値引額は$Order->getDiscount()なので
これをsubtotalから引いてやれば値引き後の価格が出ます。
novarod2
投稿日時: 2019/11/11 16:17
対応状況: −−−
新米
登録日: 2019/11/5
居住地:
投稿: 3
Re: ec-cube3で購入合計金額によって送料無料にしたい
ありがとうございます。

コードを

public function setDeliveryFreeAmount(Order $Order)
{
// 配送料無料条件(合計金額)
$deliveryFreeAmount = $this->BaseInfo->getDeliveryFreeAmount();
if (!is_null($deliveryFreeAmount)) {
// 合計金額が設定金額以上であれば送料無料
if ($Order->getSubTotal() + $Order->getDiscount() >= $deliveryFreeAmount) {
$Order->setDeliveryFeeTotal(0);
// お届け先情報の配送料も0にセット
$shippings = $Order->getShippings();
foreach ($shippings as $Shipping) {
$Shipping->setShippingDeliveryFee(0);
}
}
}
}

修正しましたが、変わらないです。
umebius
投稿日時: 2019/11/16 14:39
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1363
Re: ec-cube3で購入合計金額によって送料無料にしたい
$Order->getSubTotal() + $Order->getDiscount()
ではなく、
$Order->getSubTotal() - $Order->getDiscount()では?
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

ec-cube.co

統計情報

総メンバー数は52,667名です
総投稿数は93,854件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
2010
4
468
1873
5
yuh
1610
6
umebius
1363
7
red
1359
8
h_tanaka
933
9
fukap
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
780
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 437


ネットショップの壺

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

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