Обновляем цены в корзинах за определенный период Битрикс

Обновляем цены в корзинах за определенный период Битрикс

На проекте проводилась акция, после которой в некоторых корзинах осталась нулевая цена. Если клиент положил товар в корзину во время проведения акции, после её проведения у него оставалась нулевая цена. Требовалась ее актуализация.

Обновить цены товаров в корзине помог следующий код:

Получаем все корзины за временной промежуток


   $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']);
    }
}