foreach($arResult['KORZINA'] as $sklad=>$itemArr){
//удаляем если что-то есть в корзине
$resdelete = \CSaleBasket::GetList(array(), array(
'FUSER_ID' => $fuser,
'LID' => 's1',
'ORDER_ID' => 'null',
'DELAY' => 'N',
));
while ($rowdelete = $resdelete->fetch()) {
\CSaleBasket::Delete($rowdelete['ID']);
}
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(
$fuser,
's1'
)->getOrderableItems();
foreach($itemArr as $iditem){
$arParams=[];
$res = \CIBlockElement::GetList(null, Array('IBLOCK_ID' => '40', 'ID' => $iditem), false , false,array('ID','XML_ID','IBLOCK_EXTERNAL_ID'));
if ($row = $res->fetch()) {
$arParams['CATALOG_XML_ID']=array(
'NAME' => 'Catalog XML_ID',
'CODE' => 'CATALOG.XML_ID',
'VALUE' => $row['IBLOCK_EXTERNAL_ID']
);
$arParams['PRODUCT_XML_ID']=array(
"NAME" => "Product XML_ID",
"CODE" => "PRODUCT.XML_ID",
"VALUE" => $row['XML_ID']
);
if ($item = $basket->getExistsItem('catalog', $iditem, $arParams)){
//Обновление товара в корзине, на всякий случай
$item->setField('QUANTITY', $basketArr[$iditem]);
}else{
$item = $basket->createItem('catalog', $iditem); //создаём новый товар в корзине
$item->setFields(array(
'QUANTITY' => $basketArr[$iditem],
'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => 's1',
'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider',
"CATALOG_XML_ID" => $row['IBLOCK_EXTERNAL_ID'],
"PRODUCT_XML_ID" => $row['XML_ID'],
));
$item->getPropertyCollection()->setProperty($arParams);
}
}
}
$basket->refreshData(array('PRICE', 'COUPONS'));
$discounts = \Bitrix\Sale\Discount::buildFromBasket($basket, new \Bitrix\Sale\Discount\Context\Fuser($basket->getFUserId(true)));
$discounts->calculate();
$result = $discounts->getApplyResult(true);
$prices = $result['PRICES']['BASKET'];
print_r($prices);
/*
Array
(
[BASE_PRICE] => 2610
[PRICE] => 2610
[DISCOUNT] => 0
)
вместо
Array
(
[BASE_PRICE] => 2610
[PRICE] => 2349
[DISCOUNT] => 261
)
*/
$basket->applyDiscount($prices);
//Закинули
//Сохранение изменений корзины
$basket->save();
if (isset($_REQUEST['utm_source'])) {
set_utm_cookie();
}
на скриншотах видно что время лога 15:07, а на самом деле 15:02 в это время я отправил сохранить изменнния в файле.
в личном кабинете хостинга есть вот такая статистика