バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > その他 > 商品不問で複数個購入すると合計額から◯%の割引適用を設定できるプラグイン

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
akys
投稿日時: 2018/8/6 15:42
対応状況: −−−
新米
登録日: 2018/8/6
居住地:
投稿: 2
商品不問で複数個購入すると合計額から◯%の割引適用を設定できるプラグイン
複数商品を購入すると、合計金額から◯%offできるプラグインを探しております。

https://www.ec-cube.net/products/detail.php?product_id=580
上記プラグインのように単一商品を複数個購入すると割引(商品単価を下げる)や、選定した特定の商品から複数個購入すると割引といったようなプラグインは見つけられたのですが、
商品不問で複数個購入する場合に合計金額から割引率を設定できるプラグインを見つけることが出来ませんでした。

もしご存知の方いたらご教授いただけますと幸いです。

<使用version>
EC-CUBE 3.0.15
468
投稿日時: 2018/8/7 9:51
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 1315
Re: 商品不問で複数個購入すると合計額から◯%の割引適用を設定できるプラグイン
複数商品を購入して、ボリュームディスカウントするようなプラグインは、私は今まで見かけた事はありません。
カスタマイズするしかないのではないでしょうか?
(複数商品とは、全ての商品が対象という事でしょうか?
 また、割引条件は、個数?種類?によって段階的に切り替わるような少し複雑なものですか?)

ざっくりとした想像ですが、
/Eccube/Service/CartService.php
/Eccube/Service/ShoppingService.php
を触る形になるかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

akys
投稿日時: 2018/8/7 13:40
対応状況: −−−
新米
登録日: 2018/8/6
居住地:
投稿: 2
Re: 商品不問で複数個購入すると合計額から◯%の割引適用を設定できるプラグイン
シロハチさま
ご回答いただき誠にありがとうございます。
やはりプラグインはありませんか。。。

>複数商品とは、全ての商品が対象という事でしょうか?
>また、割引条件は、個数?種類?によって段階的に切り替わるような少し複雑なものですか?

こちらは全ての商品が対象で、商品を2つ以上(同じ商品でも別々の商品でも可)購入する場合、合計金額から◯%割引できるようにしたいという要件です。
「2つ以上で割引」以外の条件はないので段階的に切り替わるような形ではありません。

EC-CUBEのソースを深くまで追えていないので、金額に関わるカスタマイズに手が出しにくい状況で、諦めようか悩んでおります。。。
468
投稿日時: 2018/8/7 16:01
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 1315
Re: 商品不問で複数個購入すると合計額から◯%の割引適用を設定できるプラグイン
ECCUBEの仕様上、
カートの中ページで値引き後の金額を表示させる事は難しいのでないかと思います。
(カート内の金額計算ロジックに値引きが考慮されていない為)

ご注文内容のご確認ページを表示するで、値引きを計算させる方法のであれば、

/src/Eccube/Controller/ShoppingController.php function index()内のcreateOrder()で受注データを生成する時に受注データの値引き(dtb_order.discount)に値引き金額を計算してセットすれば実現できそうな気はします。
            try {
                // 受注情報を作成
                $Order = $app['eccube.service.shopping']->createOrder($Customer);
            } catch (CartException $e) {
                log_error('初回受注情報作成エラー', array($e->getMessage()));
                $app->addRequestError($e->getMessage());
                return $app->redirect($app->url('cart'));
            }


因みに、createOrder()の処理は、/src/Eccube/Service/ShoppingService.php 133行目付近に記述されています。
そこからさらにShoppingService内のメソッドを呼んで、順番に$Orderを組み立てていますので、
その辺りのソースは読んでいく必要があると思います。

ざっと確認したところ、
ShoppingService.phpのgetNewDetails()がカート内の商品から受注明細データを作り出している処理になるかと思いますので、
ここで商品が2個以上か判定し、値引き額を計算後、
$Order->setDiscount(値引き額);
をreturn $Order;の前に記述する形で実現できそうな気はします。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は36,250名です
総投稿数は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.