バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 会員割引前の金額で送料無料の判定をしたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
soc
投稿日時: 2018/9/28 15:56
対応状況: 解決済
常連
登録日: 2015/10/16
居住地:
投稿: 40
会員割引前の金額で送料無料の判定をしたい
[EC-CUBE] 2.13.3
[レンタルサーバ] CPI
[OS] win10
[PHP] PHP 5.6.31
[データベース] MySQL 5.5.14
[ブラウザ] Google Chrome
[導入プラグインの有無] 複数あり
[カスタマイズの有無] 複数あり

▼前提条件
・会員価格の設定を適用しています。
プラグイン:https://www.ec-cube.net/products/detail.php?product_id=443

・購入金額合計が5000円以上で送料無料の設定を適用しています。
基本情報管理>SHOPマスター>SHOP機能

------------------------

▼現状
商品をカートに入れ、非会員時と会員時で合計金額を比較します。
※商品・数量は同じ

非会員の場合:合計購入金額5000円以上
会員の場合:合計購入金額5000円未満(割引されている)

この時、5000円以上のため、送料無料となります。
しかし会員(ログイン後)は割引が適用され、5000円未満となるため、送料が追加されてしまいます。

(そのため、商品によっては、最終的に会員時のほうが支払金額が高くなる)

▼変更内容
送料無料の判定条件を変更したいです。(非会員時=会員割引前の金額で判定したい)
変更するべきファイルや該当箇所など、ご教授いただきたいです。

関連するであろう箇所は以下と考えています。


ファイル:html/cart/index.php

<!--{if $key != $smarty.const.PRODUCT_TYPE_DOWNLOAD}-->
<!--{if $arrInfo.free_rule > 0}-->
<!--{if !$arrData[$key].is_deliv_free}-->
あと「<span class="price"><!--{$tpl_deliv_free[$key]|number_format|h}-->円</span>」で送料無料です!!
<!--{else}-->
現在、「<span class="attention">送料無料</span>」です!!
<!--{/if}-->
<!--{/if}-->
<!--{/if}-->


------------------------
お手数をおかけしますが、よろしくお願いいたします。
yuh
投稿日時: 2018/10/1 14:56
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1524
Re: 会員割引前の金額で送料無料の判定をしたい
結構変更部分が多くなるかと思いますが、おそらくプラグイン内部でカートの商品金額算出部分を上書きしてデータを取っているかと思います。
なので、getCartListのpriceを計算している部分を一旦別にprice_base等で保存して、その金額を使用してトータルを算出する部分を用意して送料無料の計算周りに組み込めばできるとは思います。
ただ、プラグインの内部の構造がどのようになっているかわからないのであくまでも推測ですが。


----------------
商品点数100万件、0.1秒以下表示。
https://speedtest2.ec-lab.net/products/list.php?category_id=13
2系最速(自称)

soc
投稿日時: 2018/10/2 14:00
対応状況: −−−
常連
登録日: 2015/10/16
居住地:
投稿: 40
Re: 会員割引前の金額で送料無料の判定をしたい
yuhさま

ご返信いただきありがとうございます。
プラグインのカスタムも必要そうでしょうか。
いろいろ試してみます。
ご教授いただき誠にありがとうございます。
soc
投稿日時: 2018/10/3 18:18
対応状況: −−−
常連
登録日: 2015/10/16
居住地:
投稿: 40
Re: 会員割引前の金額で送料無料の判定をしたい
yuhさまにご提案いただいた方法とは違うと思われますが、
カートページの最終確認のページでの金額判断の部分のみは実現できました。
変更箇所は以下です。


▼変更箇所
/data/class/SC_CartSession.php
 function calculateの中
引用:

if ($this->isDelivFree($productTypeId)) {
$results['deliv_fee'] = 0;
}

の下に以下を追加
引用:

elseif ($objCustomer->isLoginSuccess() === true && $results['subtotal'] >= 4500) { //会員かつ購入金額が4,500円以上の場合
$results['deliv_fee'] = 0;
}


※会員の判断基準→ログインしているかどうか
※今回の場合は、「会員価格=非会員価格より10%引き」という固定の割引です。
そのため以下の計算となっています。
5,000-(5000*0.1)=4,500円=会員価格で送料無料になる最低価格

もし商品ごとに会員価格の値引き率が異なっている場合、会員ランクごとに値引き率が異なっている場合は上記の記述ではだめです。


▼画面キャプチャ
(変更前)
https://gyazo.com/8fd46113b6bd32ca35c562f1a4ce138c

(変更後)
https://gyazo.com/da7e7ec942ca599ef6fce7a88ce6bba2

▼参考にさせていただいたフォーラム:
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=15775&forum=10
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=9987&forum=10
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=10457&forum=10

--------------------------------------
ただし、上記だけの変更では、
「送料手数料無料まであと●●円です。」の判定は変わりませんでした。
(変更後のキャプチャになっている状態でも、「送料手数料無料まであと●●円です。」と表示されます。)

そちらも変更したかったのですが、
このカスタマイズは中止になったので、中途半端ですがフォーラムを解決済みとします。

ご覧いただき誠にありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は36,251名です
総投稿数は88,524件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1851
4
yuh
1524
5
468
1315
6
red
1199
7
umebius
1007
8
fukap
907
9
shutta
827
10
tsuji
815
11 ramrun 789
12
tao_s
667
13 karin 656
14 sumida 641
15
homan
633
16
h_tanaka
632
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.