Изменить доступное количество товара при добавлении в корзину Bitrix PHP
Есть переменная в куки пользователя (принимает значения 1 и 2), в зависимости от значения должно срабатывать ограничение на добавление в корзину. К примеру, если значение 1, то запрещает добавлять более 4-х товаров, если значение 2, то больше 2-х.
Пытаюсь реализовать с помощью события
AddEventHandler("sale", "OnBeforeBasketAdd", "MyOnBeforeBasketAdd")
Если по условию возвращаю ошибку, то товар не добавляется. Однако стандартно, битрикс выдает сообщение, которое также хотелось бы отображать
Товар "Название товара" уже добавлен в корзине в количестве 2. Можно добавить не более 4
Где 4 это доступное количество.
Пробовал изменить в этом событии доступное количество по условию, однако оно не меняется. Пытался переписать обработчик ядра, но появляется сообщение, что у товара не выбрана валюта, хотя выбрана
class CustomCatalogProvider extends Bitrix\Catalog\Product\OriginalCatalogProvider
{
protected static function getCatalogProducts(array $list, array $select)
{
$resultList = parent::getCatalogProducts($list, $select);
$iterator = \Bitrix\Catalog\StoreProductTable::getList([
'filter' => [
'=PRODUCT_ID' => array_keys($resultList),
'STORE_ID' => getStoreId(),
],
]);
while($row = $iterator->fetch())
{
$resultList[$row['PRODUCT_ID']]['QUANTITY'] = 0;
}
return $resultList;
}
}
Нужна Ваша помощь, возможно есть другие способы