バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
soc
投稿日時: 2018/9/28 15:56
対応状況: 解決済
常連
登録日: 2015/10/16
居住地:
投稿: 44
会員割引前の金額で送料無料の判定をしたい
[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
居住地: 大阪
投稿: 1818
Re: 会員割引前の金額で送料無料の判定をしたい
結構変更部分が多くなるかと思いますが、おそらくプラグイン内部でカートの商品金額算出部分を上書きしてデータを取っているかと思います。
なので、getCartListのpriceを計算している部分を一旦別にprice_base等で保存して、その金額を使用してトータルを算出する部分を用意して送料無料の計算周りに組み込めばできるとは思います。
ただ、プラグインの内部の構造がどのようになっているかわからないのであくまでも推測ですが。


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


http://ec-lab.net/

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

ご返信いただきありがとうございます。
プラグインのカスタムも必要そうでしょうか。
いろいろ試してみます。
ご教授いただき誠にありがとうございます。
soc
投稿日時: 2018/10/3 18:18
対応状況: −−−
常連
登録日: 2015/10/16
居住地:
投稿: 44
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公式 Amazon Payプラグイン

統計情報

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

投稿数ランキング

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.