-
Notifications
You must be signed in to change notification settings - Fork 95
Правильное сохранение заказа. Расчет всех возможных скидок и генерация всех событий связанных с оформлением заказ
Sergey edited this page Jul 23, 2015
·
1 revision
Для создания заказа в котором будут учтены все скидки на товары, а так же выполнены события:
- OnSaleCalculateOrderShoppingCart
- OnSaleCalculateOrderPersonType
- OnSaleCalculateOrderProps
- OnSaleCalculateOrderDelivery
- OnSaleCalculateOrderPaySystem
- OnSaleCalculateOrderDiscount
- OnSaleCalculateOrderShoppingCartTax
- OnSaleCalculateOrderDeliveryTax
- OnSaleCalculateOrder
- OnSetCouponList
- OnDoBasketOrder
- OnOrderSave
$arErrors = array();
$arWarnings = array();
// Данный метод вызывает события из списка вплоть до OnSaleCalculateOrder
// $arShoppingCart - может содержать не всю корзину, а только те элементы которые необходимо добавить.
$arOrderDat = CSaleOrder::DoCalculateOrder(
$siteId,
$userId,
$arShoppingCart,
$personTypeId,
$arOrderPropsValues,
$deliveryId,
$paySystemId,
$arOptions,
$arErrors,
$arWarnings
);
$arOrderFields = array(
"LID" => $arOrderDat['LID'],
"PERSON_TYPE_ID" => $arOrderDat['PERSON_TYPE_ID'],
"PAYED" => "N",
"CANCELED" => "N",
"STATUS_ID" => "N",
"PRICE" => $arOrderDat['PRICE'],
"CURRENCY" => $arOrderDat['CURRENCY'],
"USER_ID" => $arOrderDat['USER_ID'],
"USER_DESCRIPTION" => "",
"ADDITIONAL_INFO" => ""
);
//Создание заказа и привязка корзин к заказу
$ORDER_ID = CSaleOrder::DoSaveOrder($arOrderDat, $arOrderFields, 0, $errors, $arCoupons, $arStoreBarcodeOrderFormData, $bSaveBarcodes);
//Применение скидок на товары в корзинах
$arOrder = array(
'SITE_ID' => $siteId,
'USER_ID' => $USER->GetID(),
'BASKET_ITEMS' => $arShoppingCart
);
$arOptions = array();
$arErrors = array();
CSaleDiscount::DoProcessOrder($arOrder, $arOptions, $arErrors);
Welcome to the bitrix.exam2 wiki! Битрикс, подготовка к экзамену 2 https://github.com/donitz1609/bitrix.exam2