Перейти к основному содержимому

Событие перед записью свойств товара

На скриншоте ниже показаны условия при котором это событие сработает.

image_1

Здесь видно, что нужно выбрать хотя бы 1 свойство для соответствия при импорте. Далее галочкой отметить что нужно импортировать эти свойства в новые или существующие товары. Работает на выделенных вкладках скриншота.

[OnSetPropsForItem] Событие перед записью свойств товара

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

ПараметрТипОписание
itemBxarrayЭлемент инфоблока Битрикс
itemMsobjectЭлемент из МойСклад (объект)
propListarrayМассив соответствий свойств (ID свойства БУС => ID свойства МС)
arAllPropsValuesarrayВсе текущие свойства товара в БУС (для существующих товаров)
arPropsSetsarrayМассив свойств для записи через CIblockElement::SetPropertyValuesEx()
isNewboolФлаг нового товара (true — товар создаётся, false — обновляется)

Структура itemBx

[
'ID' => 1234,
'IBLOCK_ID' => 5,
'NAME' => 'Название товара',
'XML_ID' => 'abc123externalcode',
// ... другие поля элемента инфоблока
]

Структура propList

[
123 => 'msAttrUUID1', // ID свойства Битрикс => UUID свойства МойСклад
456 => 'msAttrUUID2',
789 => 'msAttrUUID3',
// ...
]

Структура arAllPropsValues

[
123 => [ // ID свойства Битрикс
'VALUE' => 'Текущее значение',
'DESCRIPTION' => '',
'PROPERTY_VALUE_ID' => 5678
],
456 => [
'VALUE' => '42',
'DESCRIPTION' => '',
'PROPERTY_VALUE_ID' => 5679
],
// ... другие свойства
]

Структура arPropsSets

[
123 => 'Новое значение строки', // строковое свойство
456 => 42.5, // числовое свойство
789 => 15, // ID значения списка (свойство типа "Список")
// ...
]

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

Верните EventResult::SUCCESS с модифицированным массивом $arPropsSets. Этот массив будет передан в CIBlockElement::SetPropertyValuesEx().