Событие перед добавлением товара в корзину

17
Алексей,
Событие перед добавлением товара в корзину

Пример обработчика события OnSaleBasketItemBeforeSaved (аналог в старом ядре - OnBeforeBasketAdd)

Пример обработчика события OnSaleBasketItemBeforeSaved (аналог в старом ядре - OnBeforeBasketAdd)

// Добавляем обработчик события
\Bitrix\Main\EventManager::getInstance()->addEventHandler('sale', 'OnSaleBasketItemBeforeSaved', 'partnerBasketRestrictions');

function partnerBasketRestrictions(\Bitrix\Main\Event $event) {
	$basketItem = $event->getParameter("ENTITY"); // Объект добавляемой позиции корзины

	$productId = $basketItem->getProductId();
	$price = $basketItem->getPrice();
  
	$basket = $basketItem->getBasket(); // Объект корзины
	foreach ($basket as $basketItem) { // Перебор корзины, вместе с добавляемой позицией
		$productId = $basketItem->getProductId();
		$price = $basketItem->getPrice();
	}
	
	// Пример вывода ошибки
	return new \Bitrix\Main\EventResult(
		\Bitrix\Main\EventResult::ERROR,
		new \Bitrix\Sale\ResultError('Нельзя добавить этот товар', 'ERROR_CODE'),
		'sale'
	);
}

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 18 февраля 2025
корзина, события, примеры d7, интернет-магазин
Поделиться
Похожие статьи
Какие скидки были применены к товарам в заказе
Нужен всего один метод OrderEdit::getOrderedDiscounts, его нет в документации, т.к. используется тол...
Читать дальше » 0
Алексей,
Добавление в корзину на D7
Пример для добавления товара в корзину на API Bitrix D7: актуальный, правильный, быстрый.
Читать дальше » 0
Алексей,
Комментарии
❮…❯
Авторизуйтесь чтобы получать уведомления об ответе
Пример обработчика события OnSaleBasketItemBeforeSaved (аналог в старом ядре - OnBeforeBasketAdd)