При выгрузки из 1с у нас в свойство реквизиты поле бренд выгружается xml_id бренда данного товара.
После по данному xml_id мы получили id бренда и и скопировали его в свойство Бренд данного товара
код прописывается в файле init.php
$arFilter = Array("IBLOCK_ID"=>5, "XML_ID"=>$BRAND_XMLID);
в нашем случае это 5
в коде также следует указать ID именно вашего xml_id - свойства в строке:
$arFields[PROPERTY_VALUES][24] - в нашем случае это 24
Код |
---|
//Функция при добавлении или изменении элемента выполняется код функции AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "OnAfterIBlockEl"); AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnAfterIBlockEl"); function OnAfterIBlockEl(&$arFields) { if (CModule::IncludeModule("iblock")): $res = CIBlockElement::GetByID($arFields['ID']); if ($obRes = $res->GetNextElement()) { $ar_res = $obRes->GetProperty("CML2_TRAITS"); foreach ($ar_res['DESCRIPTION'] as $key => $ar) { $desc = trim($ar, " "); if($desc == "Бренд"){ if ($_REQUEST['mode'] == 'import') { $BRAND_XMLID = $ar_res['VALUE'][$key]; $arFields[PROPERTY_VALUES][67][n0][VALUE] = $BRAND_XMLID; $arFilter = Array("IBLOCK_ID"=>10, "XML_ID"=>$BRAND_XMLID); $arSelect = Array("ID"); $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect); if ($ob = $res->GetNextElement()){ $OBRAND = $ob->fields; CIBlockElement::SetPropertyValuesEx ( $arFields['ID'],$arFields['IBLOCK_ID'],array ( 'BRAND_REF' => $OBRAND[ID] ) ); } } } |