Документация для разработчиков
Темная тема

OnBeforeAdd

\Bitrix\Catalog\Model\EventResult функция-обработчик(
	\Bitrix\Catalog\Model\Event $event
);

Событие OnBeforeAdd вызывается в начале метода \Bitrix\Catalog\Model\Product::add до проверки и подготовки полей товара. Обработчик может изменить данные операции или добавить ошибку и отменить добавление товара.

Параметры события

Параметр Тип Описание
fields array Поля товара, переданные в метод add()
external_fields array Дополнительные поля, которые не передаются напрямую в ORM-таблицу товара
actions array Действия, которые модель должна выполнить после добавления товара

Возвращаемое значение

Верните объект \Bitrix\Catalog\Model\EventResult. Методы modifyFields(), modifyExternalFields() и modifyActions() изменяют соответствующие данные операции. Методы unsetFields(), unsetExternalFields() и unsetActions() удаляют данные. Метод addError() добавляет ошибку и отменяет добавление товара.

Метод объединяет изменения от всех обработчиков, а затем проверяет ошибки. Измененные поля проходят штатную подготовку и проверку модели.

Пример

Обработчик задает значение поля VAT_INCLUDED, если оно не передано при добавлении товара.

<?php

use Bitrix\Catalog\Model\Event;
use Bitrix\Catalog\Model\EventResult;
use Bitrix\Catalog\ProductTable;
use Bitrix\Main\EventManager;

EventManager::getInstance()->addEventHandler(
	'catalog',
	'Bitrix\Catalog\Model\Product::OnBeforeAdd',
	static function (Event $event): EventResult
	{
		$fields = $event->getParameter('fields');
		$result = new EventResult();

		if (!array_key_exists('VAT_INCLUDED', $fields))
		{
			$result->modifyFields([
				'VAT_INCLUDED' => ProductTable::STATUS_NO,
			]);
		}

		return $result;
	}
);

Продолжить изучение



Была ли эта страница полезна?

Пользовательские комментарии

Помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2026, «1С-Битрикс», 2026
Наверх