На проекте проводилась акция, после которой в некоторых корзинах осталась нулевая цена. Если клиент положил товар в корзину во время проведения акции, после её проведения у него оставалась нулевая цена. Требовалась ее актуализация.
Обновить цены товаров в корзине помог следующий код:
Получаем все корзины за временной промежуток
$minDate = "18.02.2019 23:12:12";
$maxDate = "23.02.2019 23:55:00";
// список товаров в корзине за период
$dbBasketItems = CSaleBasket::GetList(
array(),
array(
">=DATE_INSERT" => $minDate,
"<=DATE_INSERT" => $maxDate,
),
false,
false,
array()
);
Если нулевая цена обновляем до текущей цена из каталога
while ($arItems = $dbBasketItems->Fetch())
{
$arBasketPrice['OLD_PRICE'] = $arItems['PRICE'];
// если нулевая цена обновляем
if($arItems['PRICE'] == '0.0000'){
CSaleBasket::UpdatePrice($arItems['ID']);
}
}