Нужно пересчитать заказ.
В заказе есть скидки
при выполнении такого кода скидки слетают, те которые еще не слетели, вместо того чтобы пересчитать
даже если убрать очистку
все-равно слетают
в админке если нажать пересчет, то все встает на место, но мне нужно при получении заказа сделать пересчет
В чем может быть проблема?
В заказе есть скидки
Код |
---|
$order = Sale\Order::load(221489); $discount = $order->getDiscount(); \Bitrix\Sale\DiscountCouponsManager::clearApply(true); \Bitrix\Sale\DiscountCouponsManager::useSavedCouponsForApply(true); $discount->setOrderRefresh(true); $discount->setApplyResult(array()); if (!($basket = $order->getBasket())) throw new \Bitrix\Main\ObjectNotFoundException('Entity "Basket" not found'); $res = $basket->refreshData(array('PRICE', 'COUPONS')); $res = $discount->calculate(); $order->doFinalAction(true); $order->save(); |
при выполнении такого кода скидки слетают, те которые еще не слетели, вместо того чтобы пересчитать
даже если убрать очистку
Код |
---|
\Bitrix\Sale\DiscountCouponsManager::clearApply(true); \Bitrix\Sale\DiscountCouponsManager::useSavedCouponsForApply(true); |
все-равно слетают
в админке если нажать пересчет, то все встает на место, но мне нужно при получении заказа сделать пересчет
В чем может быть проблема?