Суть задачи - я пытаюсь удалить скидку при изменении способа оплаты, чтобы после пересчета она так же убиралась. Если поставить в правилах работы с корзиной новое правило с учетом платежной системы, то пересчет скидок будет работать корректно, но скидки не будут отображаться в каталоге.
Просматривая форум я нашел подобное решение, но в моем случае оно ничего не меняет. Можете подсказать в чем проблема и как её можно решить?
Просматривая форум я нашел подобное решение, но в моем случае оно ничего не меняет. Можете подсказать в чем проблема и как её можно решить?
Код |
---|
\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSalePaymentSetField', 'myFunction2' ); function myFunction2(\Bitrix\Main\Event $event) { $payment = $event->getParameter('ENTITY'); if ($payment instanceof \Bitrix\Sale\Payment) { $order = $payment->getOrder(); $discount = $order->getDiscount(); $discount->setApplyResult(array('DISCOUNT_LIST' => array())); $res = $discount->calculate(); if ($res->isSuccess()) { if (($discountData = $res->getData()) && is_array($discountData)) { $order->applyDiscount($discountData); } } } } |