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

OnBeforeProductAdd

Описание и параметры

bool функция-обработчик( 
	array &$arFields 
)

Событие вызывается в методе CCatalogProduct::Add перед добавлением товара. Позволяет изменить вносимые данные до вызова CCatalogProduct::CheckFields либо вообще отменить запись.

Событие устарело. Будет работать только если в настройках модуля Каталог включена опция Включить поддержку устаревших событий.

Параметры

Параметр Описание
arFields Ассоциативный массив, ключами которого являются названия параметров товара, а значениями - новые значения параметров.
Допустимые ключи:
  • ID - код товара (элемента каталога - обязательный);
  • QUANTITY - количество товара на складе;
  • QUANTITY_TRACE - флаг (Y/N) "уменьшать ли количество при заказе";
  • WEIGHT - вес единицы товара;
  • PRICE_TYPE - тип цены (S - одноразовый платеж, R - регулярные платежи, T - пробная подписка;)
  • RECUR_SCHEME_TYPE - тип периода подписки ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год);
  • RECUR_SCHEME_LENGTH - длина периода подписки;
  • TRIAL_PRICE_ID - код товара, для которого данный товар является пробным;
  • WITHOUT_ORDER - флаг "Продление подписки без оформления заказа";
  • VAT_ID - код НДС;
  • VAT_INCLUDED - флаг (Y/N) включен ли НДС в цену.

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

Возвращает false при отказе, возвращает true при успешном разрешении на добавление.

Примеры использования

AddEventHandler("catalog", "OnBeforeProductAdd", Array("My_Class", "OnBeforeProductAdd"));   
  
class My_Class  
{
	public static function OnBeforeProductAdd(&$arFields)
	{ 
		$arFields["QUANTITY_TRACE"] = "Y"; 
		return true;
	}
}


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

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

Для этого нужно всего лишь авторизоваться на сайте

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
2
Сергей Панчук
Цитата
Дмитрий Денисенко пишет:
А где новое событие?
Код
\Bitrix\Main\EventManager::getInstance()->addEventHandler('catalog', '\Bitrix\Catalog\Product::OnBeforeAdd', 'addedBaseQuantity');
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх