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