При некоторых обстоятельствах, нужно отменять некоторые скидки на товары в корзине и соответственно в форме оформления заказа (компоненты штатные).
На статической странице пробую такой код:
Но если после данного кода вызвать снова $discounts->getApplyResult(true)["DISCOUNT_LIST"]; - скидка которую мы отменили не ушла с этого списка.
Или на какое событие вешать такую обработку?
Как применить удаление скидки для корзины и оформления заказа?
На статической странице пробую такой код:
Код |
---|
$basket = Bitrix\Sale\Basket::loadItemsForFUser(Bitrix\Sale\Fuser::getId(), SITE_ID); $discounts = \Bitrix\Sale\Discount::buildFromBasket($basket, new \Bitrix\Sale\Discount\Context\Fuser($basket->getFUserId(true))); $discounts->calculate(); $currentDiscountApplied = $discounts->getApplyResult(true)["DISCOUNT_LIST"]; //получили список примененных скидок $discounts->setApplyResult(array('DISCOUNT_LIST' => array('1399' => 'N'))); //отменяем нужную нам скидку $discountsCalculateResult = $discounts->calculate(); if ($discountsCalculateResult->isSuccess()) { $result = $discountsCalculateResult->getData(); ?><pre><?var_dump($result);?></pre><? //тут выводятся корретные данные по ценам $basket->applyDiscount($result); } |
Или на какое событие вешать такую обработку?
Как применить удаление скидки для корзины и оформления заказа?