Добрый день, коллеги. Делаю изменение товара в корзине. Код простой и понятный, но почему-то срабатывает только на увеличение. В чем может быть проблема?
Bitrix\Main\Loader::includeModule('sale');
$order = \Bitrix\Sale\Order::load($OrderID);
$basket = $order->getBasket();
if ($item = $basket->getExistsItem('catalog', $ProductID)) {
$item->setField('QUANTITY', $Quantity);
}
... и дальше обновление заказа
если $Quantity больше текущего, проблем нет, все отрабатывает нормально. Если $Quantity меньше текущего, ничего не происходит. С чем это может быть связано? Есть, конечно, рабочий вариант удалить товар и добавить заново с новым количеством, но, как минимум визуально это будет плохо, в случае если в корзине есть еще товары, товар уйдет в конец списка.
Bitrix\Main\Loader::includeModule('sale');
$order = \Bitrix\Sale\Order::load($OrderID);
$basket = $order->getBasket();
if ($item = $basket->getExistsItem('catalog', $ProductID)) {
$item->setField('QUANTITY', $Quantity);
}
... и дальше обновление заказа
если $Quantity больше текущего, проблем нет, все отрабатывает нормально. Если $Quantity меньше текущего, ничего не происходит. С чем это может быть связано? Есть, конечно, рабочий вариант удалить товар и добавить заново с новым количеством, но, как минимум визуально это будет плохо, в случае если в корзине есть еще товары, товар уйдет в конец списка.