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

OnBeforeProductUpdate

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

OnBeforeProductUpdate - событие, вызываемое в методе CCatalogProduct::Update перед обновлением параметров товара. Позволяет изменить данные до вызова CCatalogProduct::CheckFields либо отменить обновление.

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

Параметры

Параметр Описание
ID Идентификатор товара.
arFields Ассоциативный массив параметров товара. Перечень допустимых ключей массива смотрите в CCatalogProduct::Update.

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

Может вернуть false, если нужно воспрепятствовать обновлению. В противном случае нужно вернуть значение true.

Смотрите также



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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Вячеслав Докукин
Сообщение не промодерировано, возможны ошибки и неточности.
Код
AddEventHandler("catalog", "OnBeforeProductUpdate", "myOnBeforeProductUpdate");

function myOnBeforeProductUpdate($id, &$arFields)
{
   $arFields["VAT_INCLUDED"] = "N";
   $arFields["VAT_ID"] = 2;
   return true;
}
18
Дмитрий Игошев
Цитата
Событие устарело. Будет работать только если в настройках модуля Каталог включена опция Включить поддержку устаревших событий.

Пример работы с событием нового ядра
Код
\Bitrix\Main\EventManager::getInstance()->addEventHandler('catalog','\Bitrix\Catalog\Model\Product::OnBeforeUpdate','onBeforeProductUpdate');

function onBeforeProductUpdate(\Bitrix\Catalog\Model\Event $event){
   $result     =   new \Bitrix\Catalog\Model\EventResult();

   /**
    * получаем поля товара
    */
   $arFields   =   $event->getParameter('fields');

   /**
    * получаем ID товара
    */
   $id         =   $event->getParameter('primary')['ID'];

   /**
    * модифицируем поле "MEASURE"
    */
   $arFields['MEASURE']=   10;
   $result->modifyFields($arFields);

   /**
    * удаляем поле "QUANTITY"
    */
   $unsetFields=   ['QUANTITY'];
   $result->unsetFields($unsetFields);

   return  $result;
}
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх