Здравствуйте!
Есть немного кастомизированный 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 всё равно автоматического пересчёта не происходит.
При применении купона в админке - всё отлично.
В общем, есть стойкое ощущение, что делаю что-то неправильно, но не могу понять что :)