Добрый день.
Прошу помочь.
в 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) |
Подскажите в чем может быть проблема.