@mirexdoors

Как сделать пересчёт корзины после применения купона правил корзины?

Здравствуйте!
Есть немного кастомизированный sale.order.ajax. Также у него в шаблоне до кучи выводится корзина. Также есть поле ввода купона. Проблема в том, что при использовании купона скидки на товар (через CCatalogDiscountCoupon::SetCoupon()) - всё отрабатывает отлично. Но вот с купоном правил корзины не выходит.

В компоненте следующий код:
$couponsDB = CCatalogDiscountCoupon::GetList(array("ID" => "ASC"), array("COUPON" => $_POST['COUPON'], "ACTIVE" => "Y"));

                if($couponItem = $couponsDB->Fetch()) {
                    CCatalogDiscountCoupon::SetCoupon($couponItem['COUPON']);
                    $arResult['DISCOUNT_COUPON'] = $couponItem['COUPON'];
                } else {
                    CCatalogDiscountCoupon::ClearCoupon();
                }


в $_POST['COUPON'] - код купона приходит верно, но вот выборка CCatalogDiscountCoupon::GetList() - пустая.

Пробовал тестировать без выборки:
CCatalogDiscountCoupon::SetCoupon($_POST['COUPON'])

- метод возвращает 1, далее передаю $arResult['DISCOUNT_COUPON'] = $_POST['COUPON']; но далее по коду в методе CSaleOrder::DoCalculateOrder всё равно автоматического пересчёта не происходит.

При применении купона в админке - всё отлично.

В общем, есть стойкое ощущение, что делаю что-то неправильно, но не могу понять что :)
  • Вопрос задан
  • 945 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы