короб - одно предложение. Каждый короб продается в единственном экземпляре (доступное кол-во = 1) Резервирование товаров происходит при оформлении заказа После обновления Битрикса в разных заказах стали появляться одни и те же коробы.
даты смотрим в таблицах • b_sale_order • b_sale_basket • b_sale_basket_reservation Оба заказа зарезервировали товар. Но у одного из заказов время резервирования не совпадало ни со временем оформления заказа, ни со временем добавления товара в корзину. Чтобы выяснить, когда и кем товар резервируется логируем таблицу резервов
function clearBasket(BasketBase &$basket, $save = false) { if (!SiteHelper::isSewnContextSite()) { $changed = false; foreach ($basket as $basketItem) { if (!$basketItem->canBuy()) { $basketItem->delete(); $changed = true; } } if ($changed && $save) { $basket->save(); } } } // ... } Здесь видно, что при загрузке корзины из нее удаляются недоступные товары. Если корзина была изменена, она сохраняется. И при этом создаются резервы. • Таким образом мы понимаем, как нам повторить ошибку: добавляем несколько товаров в корзину • Делаем часть товаров недоступными • Обновляем страницу корзины