Здравствуйте.
Корзина кастомизированая, расчеты осуществляются через вызовы методов Битрикс.
Купон в корзине применяется, но заказ оформления на полную стоимость, (пример на скриншоте)
Применение купона реализованнометодом из документации , и раньше все работало, но теперь функцианал не работает. Причинно следственную связь определить не получилось.
Применяется купон следующим образом:
В $discountResult купон есть. При выводе даных из $basket товары со старыми ценами.
Почему не применяется купон к товарам? Или в $basket и не должны меняться цены, как тогда правильно применить скидку к заказу?
Корзина кастомизированая, расчеты осуществляются через вызовы методов Битрикс.
Купон в корзине применяется, но заказ оформления на полную стоимость, (пример на скриншоте)
Применение купона реализованно
Применяется купон следующим образом:
Код |
---|
$fUserID = \Bitrix\Sale\Fuser::getId(); $siteId = \Bitrix\Main\Context::getCurrent()->getSite(); $basket = \Bitrix\Sale\Basket::loadItemsForFUser( $fUserID, $siteId ); //... \Bitrix\Sale\DiscountCouponsManager::init(); \Bitrix\Sale\DiscountCouponsManager::clear(true); \Bitrix\Sale\DiscountCouponsManager::add($_REQUEST['promocode']); $arErrors = \Bitrix\Sale\DiscountCouponsManager::getErrors(); $discounts = \Bitrix\Sale\Discount::loadByBasket($basket); $basket->refreshData(array('PRICE', 'COUPONS')); $discounts->calculate(); $discountResult = $discounts->getApplyResult(); echo "<pre>"; print_r($discountResult); // купон приенен echo "</pre>"; //... $basket->save(); foreach ($basket as $item) { echo "<pre>"; print_r($item); // Тут цены без скидки echo "</pre>"; } |
Почему не применяется купон к товарам? Или в $basket и не должны меняться цены, как тогда правильно применить скидку к заказу?