$bFirst = false; } } if (IntVal($arUserResult["PAY_SYSTEM_ID"]) > 0 && empty($arResult["PAY_SYSTEM"][$arUserResult["PAY_SYSTEM_ID"]])) { $bF = true; foreach ($arResult["PAY_SYSTEM"] as $k => $v) { if ($bF) { $arResult["PAY_SYSTEM"][$k]["CHECKED"] = "Y"; $arUserResult["PAY_SYSTEM_ID"] = $arResult["PAY_SYSTEM"][$k]["ID"]; $bF = false; } } } } //calculate delivery discount $deliveryOrderData = CSaleOrder::makeOrderArray(SITE_ID, $USER->GetID(), $arResult["BASKET_ITEMS"]); $deliveryOrderData = array_merge($deliveryOrderData, $arUserResult); if (!empty($arResult["DELIVERY"]) && is_array($arResult["DELIVERY"])) { foreach ($arResult["DELIVERY"] as $deliveryKey => $deliveryData) { if (!empty($deliveryData['PRICE'])) { // calculate discount price $orderDeliveryPriceData = $deliveryOrderData; $orderDeliveryPriceData['PRICE_DELIVERY'] = $orderDeliveryPriceData['DELIVERY_PRICE'] = $deliveryData["PRICE"]; $orderDeliveryPriceData['DELIVERY_ID'] = $deliveryData['ID']; CSaleDiscount::DoProcessOrder($orderDeliveryPriceData, array(), $arErrors); if (floatval($orderDeliveryPriceData['DELIVERY_PRICE']) > 0 && $deliveryData["PRICE"] != $orderDeliveryPriceData['DELIVERY_PRICE']) { $arResult["DELIVERY"][$deliveryKey]['DELIVERY_DISCOUNT_PRICE'] = $orderDeliveryPriceData['DELIVERY_PRICE']; $arResult["DELIVERY"][$deliveryKey]["DELIVERY_DISCOUNT_PRICE_FORMATED"] = SaleFormatCurrency($orderDeliveryPriceData['DELIVERY_PRICE'], $arResult["BASE_LANG_CURRENCY"]); } } }