@mirexdoors

Почему могут не срабатывать купоны в оформлении заказа?

Здравствуйте1 Есть кастомизированный sale.order.ajax c функционалом скидочных купонов. Проблема в том, что при применнении купона и аякс запросе метод CSaleOrder::DoCalculateOrder() не пересчитывает заказ. А пересчёт происходит только пр перезагрузке страницы.

Вообще, делаю так:
if (isset($_REQUEST['AJAX_CALL']) && $_REQUEST['AJAX_CALL'] == "Y") {
            $arError = array();
            $arWarnings = array();

            
            $arOrderDat = CSaleOrder::DoCalculateOrder(
                SITE_ID,
                $GLOBALS["USER"]->GetID(),
                $arResult['BASKET_ITEMS'],
                $arUserResult['PERSON_TYPE_ID'],
                $arUserResult['ORDER_PROP'],
                $arUserResult['DELIVERY_ID'],
                $arUserResult['PAY_SYSTEM_ID'],
                array(),
                $arError,
                $arWarnings
            );

            if ($arOrderDat) {
                foreach ($arResult['BASKET_ITEMS'] as $id => &$item) {
                     $item = &$arResult['BASKET_ITEMS'][$id];
                    $item['PRICE'] = ($arOrderDat['BASKET_ITEMS'][$id]['PRICE']);
                    $item['DISCOUNT_PRICE'] = ($item['BASE_PRICE'] - $arOrderDat['BASKET_ITEMS'][$id]['PRICE']);

                    $item['PRICE_FORMATED'] = SaleFormatCurrency($item['PRICE'], $arResult["BASE_LANG_CURRENCY"]);
                }

                $arOrderDat['BASKET_ITEMS'] = $arResult['BASKET_ITEMS'];
                $orderPrice = $arResult["ORDER_PRICE"] = $arOrderDat["ORDER_PRICE"];
            }
        }
  • Вопрос задан
  • 195 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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