Добрый день.
Настроил выгрузку товаров из 1с УП в один инфо-блок, а так же выгрузку брендов в другой блок.
Прошу подсказать, так как не могу найти инструкции по обращению с HL блоками.
Как мне изменить свой код под выгрузку именно в hl блок.
Методом изменения iblock в block - не прокатывает.
Настроил выгрузку товаров из 1с УП в один инфо-блок, а так же выгрузку брендов в другой блок.
Прошу подсказать, так как не могу найти инструкции по обращению с HL блоками.
Как мне изменить свой код под выгрузку именно в hl блок.
Код |
---|
AddEventHandler("catalog", "OnBeforeProductUpdate", "MyOnBeforeProductUpdate"); AddEventHandler("catalog", "OnBeforeProductAdd", "MyOnBeforeProductAdd"); function MyOnBeforeProductUpdate($ID, $arFields) { $element = CCatalogProduct::GetByIDEx($ID); ModifyProduct($ID, $element); } function MyOnBeforeProductAdd($arFields) { $element = CCatalogProduct::GetByIDEx($arFields["ID"]); ModifyProduct($arFields["ID"], $element); } function ModifyProduct($ID, $element) { $ELEMENT_ID = $ID; $PROPERTY_CODE = "MANUFACTURER"; $PROPERTY_VALUE = ""; $MANUFACTURER_ELEMENT_ID = 10; $dbr = CIBlockElement::GetList(array(), array("=ID"=>$ELEMENT_ID), false, false, array("ID", "IBLOCK_ID")); if ($dbr_arr = $dbr->Fetch()) { $CML2_MANUFACTURER = $element["PROPERTIES"]["CML2_MANUFACTURER"]["VALUE_ENUM"]; $CML2_MANUFACTURER_XML_ID = $element["PROPERTIES"]["CML2_MANUFACTURER"]["VALUE_XML_ID"]; $dbrp = CIBlockElement::GetList(array(), array("=EXTERNAL_ID"=>$CML2_MANUFACTURER_XML_ID), false, false, array()); if ($dbrp->Fetch() === false) { $el = new CIBlockElement; $fields = array( 'IBLOCK_ID' => 10, 'NAME' => $CML2_MANUFACTURER, 'ACTIVE' => "Y", 'SEARCHABLE_CONTENT' => $CML2_MANUFACTURER, 'CREATED_BY' => '1', 'MODIFIED_BY' => '1', 'DATE_CREATE' => time(), 'CODE' => $CML2_MANUFACTURER_XML_ID, 'EXTERNAL_ID' => $CML2_MANUFACTURER_XML_ID ); $PROPERTY_VALUE = $el->Add($fields); if (!$PROPERTY_VALUE) { AddMessage2Log("Error[" . $PROPERTY_VALUE . "]: " . $el->LAST_ERROR . '<br />'); } } $dbrp = CIBlockElement::GetList(array(), array("=EXTERNAL_ID"=>$CML2_MANUFACTURER_XML_ID), false, false, array()); if ($dbrp_arr = $dbrp->Fetch()) { $PROPERTY_VALUE = $dbrp_arr["ID"]; } $IBLOCK_ID = $dbr_arr["IBLOCK_ID"]; CIBlockElement::SetPropertyValues($ELEMENT_ID, $IBLOCK_ID, $PROPERTY_VALUE, $PROPERTY_CODE); } |
Методом изменения iblock в block - не прокатывает.