質問 > フロント機能 > 複数購入で割り引きをしたい |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
masaru |
投稿日時: 2021/10/27 23:13
対応状況: −−−
|
半人前 登録日: 2009/7/7 居住地: 投稿: 18 |
Re: 複数購入で割り引きをしたい カートの中の合計、「ご注文手続き」(shopping)の小計、合計、お支払合計に割引を反映させるには
src/Eccube/Service/PurchaseFlow/PurchaseFlow.php の protected function calculateTotal(ItemHolderInterface $itemHolder) { $total = array_reduce($itemHolder->getItems()->toArray(), function ($sum, ItemInterface $i\ tem) { if ($item->getQuantity() == 1) { $sum += $item->getPriceIncTax() * $item->getQuantity(); } elseif ($item->getQuantity() >= 2 ) { $sum += $item->getPriceIncTax() * 1.5 ; } return $sum; }, 0); protected function calculateSubTotal(ItemHolderInterface $itemHolder) { $total = $itemHolder->getItems() ->getProductClasses() ->reduce(function ($sum, ItemInterface $item) { if ($item->getQuantity() == 1) { $sum += $item->getPriceIncTax() * $item->getQuantity(); } elseif ($item->getQuantity() >= 2 ) { $sum += $item->getPriceIncTax() * 1.5; } return $sum; }, 0); を修正しました。 さらにshoppingページで小計の部分に使われているOrder.taxable_totalがどこで計算されているかわからなかったので、Order.payment_totalで置き換えて <div class="ec-totalBox__total">{{ '合計'|trans }}<span class="ec-totalBox__price">{{ Order.payment_total|price }}</span><span class="ec-totalBox__taxLabel">{{ '税込'|trans }}</span></div> としました。 これでとりあえず1個購入は定価、2個と3個購入では定価の1.5倍にすることができました。商品に3個までの購入制限をかけているので、4個以上同時購入はできなくしています。 |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
複数購入で割り引きをしたい | masaru | 2021/10/15 20:04 |
Re: 複数購入で割り引きをしたい | 468 | 2021/10/18 11:41 |
Re: 複数購入で割り引きをしたい | masaru | 2021/10/19 12:59 |
Re: 複数購入で割り引きをしたい | 468 | 2021/10/21 10:44 |
Re: 複数購入で割り引きをしたい | masaru | 2021/10/26 11:29 |
Re: 複数購入で割り引きをしたい | masaru | 2021/10/27 22:54 |
» Re: 複数購入で割り引きをしたい | masaru | 2021/10/27 23:13 |