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

Событие перед записью свойств торговых предложений

На скриншоте указано для каких свойств вызывается событие:

image_1

Здесь видно, что это событие отличается от [onSetPropsForItem] тем, что вызывается в момент импорта характеристик модификаций МС в свойства торговых предложений БУС.

[OnSetSkuProps] Событие перед записью свойств торговых предложений

Событие вызывается перед записью свойств торговых предложений. Позволяет модифицировать массив свойств, который будет передан в CIBlockElement::SetPropertyValuesEx().

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

ПараметрТипОписание
itemBxarrayЭлемент инфоблока Битрикс (торговое предложение)
itemMsobjectЭлемент из МойСклад (модификация)
propSkuListarrayМассив с параметрами свойств Битрикса
arResultSkuarrayМассив свойств для записи через CIblockElement::SetPropertyValuesEx()

Структура itemBx

[
'ID' => 1234,
'IBLOCK_ID' => 5,
'NAME' => 'Товар (Красный, L)',
'XML_ID' => 'abc123externalcode',
// ... другие поля элемента инфоблока
]

Доступ к характеристикам модификации МС (itemMs)

// Перебор характеристик модификации:
foreach ($itemMs->characteristics as $prop) {
$prop->id; // UUID характеристики в МС: '25f3a-...'
$prop->name; // Название: 'Цвет'
$prop->value; // Значение: 'Красный'
}

Структура propSkuList

[
'PROP_IDS' => [
'msCharUUID1' => 123, // UUID характеристики МС => ID свойства Битрикс
'msCharUUID2' => 456,
],
'PROP_TYPES' => [
123 => [
'TYPE' => 'S', // S (строка), N (число), L (список), E (привязка к элементу), S:directory (справочник)
'PARAM' => '', // для типа E — ID привязанного инфоблока, для S:directory — код справочника
'HL_CLASS' => null, // для S:directory — класс сущности HL-блока
],
456 => [
'TYPE' => 'L',
'PARAM' => '',
'HL_CLASS' => null,
],
],
'PROP_ENUMS' => [
'msCharUUID1' => [
'КРАСНЫЙ' => 15, // значение в верхнем регистре => ID значения списка / ID элемента / UF_XML_ID
'СИНИЙ' => 16,
],
'msCharUUID2' => [
'L' => 20,
'M' => 21,
'S' => 22,
],
],
]

Структура arResultSku

[
123 => 'Красный', // строковое свойство
456 => 20, // ID значения списка
789 => 'red-xml-id', // UF_XML_ID для справочника
// ...
]

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

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

return new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $arResultSku);