Обучаю битриксу программистов, интеграторов. Подробнee ⇒

При импорте на сайт из 1С заполняем длину, ширину, высоту



габариты из 1С выгружаются не в каталожные параметры товара, а в свойства SHIRINA_1, GLUBINA_1, VYSOTA_1.
обработчик заполняет параметры товара

init.php
use Bitrix\Main,
     Bitrix\Main\Loader,
    Bitrix\Main\EventManager;

//autoload class
Loader::registerAutoLoadClasses(null, array(   
    "Prop2ParamTK" => "/php_interface/prop2ParamTK.php"
)); 
$eventManager = EventManager::getInstance();
$eventManager->addEventHandler('catalog',
                                '\Bitrix\Catalog\Product::OnBeforeUpdate',
                                ["Prop2ParamTK",  "dimentions"]);
класс prop2ParamTK  
/php_interface/prop2ParamTK.php

проверить коды свойств у вас SHIRINA_1, GLUBINA_1, VYSOTA_1 - заменить на свои
class Prop2ParamTK{
    /**
     * Перенести из свойств товара в параметры торгового каталога
     *
     */
    function dimentions($event){
        if (1 || isset($_GET['type'], $_GET['mode']) && $_GET['type'] === 'catalog' && $_GET['mode'] === 'import') {
            // данное условие оставлено, если модификацию будет необходимо использовать только при обмене с 1С

            $id = $event->getParameter('primary')['ID'];
            $arFields = $event->getParameter('fields');

            $arSelect = Array("ID", "IBLOCK_ID", "NAME", "PROPERTY_*");
            $arFilter = Array("IBLOCK_ID"=>10, "ID" => $id);
            $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
            if($ob = $res->GetNextElement()) $arProps = $ob->GetProperties();

            $arFields["WIDTH"] =  $arProps["SHIRINA_1"]["VALUE"];
            $arFields["LENGTH"] =  $arProps["GLUBINA_1"]["VALUE"];
            $arFields["HEIGHT"] =  $arProps["VYSOTA_1"]["VALUE"];

            /**
             * Установим полученные значения
             */
            $result = new \Bitrix\Main\ORM\EventResult;
            $result->modifyFields($arFields);

            return  $result;
        }
    }


}
Если блог был полезным, можете угостить меня "чашечкой кофе" :)

Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!