Добрый день.
Прошу помочь.
в 1с размеры товара хранятся в метрах а на сайте - в миллиметрах.
Задача настроить конвертацию из метров в миллиметры.
Решения в модуле обмена я не нашел, на форуме также не увидел подобного.
Решил попробовать конвертировать через событие в init.php.
Закинул в лог поглядеть что там есть.
Через dumpToFile выявил что размеры лежат в данных полях:
Пытаюсь подменить на лету в функции ConvertSize(), к примеру ширину товара
За код не пинайте не суть.
Но при этом в товаре ничего не меняется как было 0,19 так и остается.
Подскажите в чем может быть проблема.
Прошу помочь.
в 1с размеры товара хранятся в метрах а на сайте - в миллиметрах.
Задача настроить конвертацию из метров в миллиметры.
Решения в модуле обмена я не нашел, на форуме также не увидел подобного.
Решил попробовать конвертировать через событие в init.php.
Закинул в лог поглядеть что там есть.
Код |
---|
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate","ConvertSize"); function ConvertSize(&$arFields) { if ($_REQUEST['mode']=='import') { Debug::dumpToFile($arFields, "PARAM", '/log.txt'); } } |
Через dumpToFile выявил что размеры лежат в данных полях:
Код |
---|
... ["WIDTH"]=> float(0.19) ["LENGTH"]=> float(0.16) ["HEIGHT"]=> float(0.16) ... |
За код не пинайте не суть.
Код |
---|
$length = str_replace("float(", "", $arFields['LENGTH']); $length = str_replace(")", "", $length); $length = $length * 1000; $arFields['LENGTH'] = 'float('.$length.')'; |
В итоге подмена удачна в $arFields['LENGTH'] хранится "float(190)";
Через dumpToFile убеждаюсь что все успешно
Код |
---|
["WIDTH"]=> float(190) |
Подскажите в чем может быть проблема.