При некоторых обстоятельствах, нужно отменять некоторые скидки на товары в корзине и соответственно в форме оформления заказа (компоненты штатные).
На статической странице пробую такой код:
Но если после данного кода вызвать снова $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);
}
|
Или на какое событие вешать такую обработку?
Как применить удаление скидки для корзины и оформления заказа?
