Добрый день.
Прошу помочь.
в 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)
...
|
Пытаюсь подменить на лету в функции ConvertSize(), к примеру ширину товара
За код не пинайте не суть.
Код |
---|
$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) |
Но при этом в товаре ничего не меняется как было 0,19 так и остается.
Подскажите в чем может быть проблема.