Добрый день!
Загрузка товаров на сайт через скрипт /bitrix/admin/1c_exchange.php работает некорректно.
Для свойств товаров с типом Список и установленным признаком Множественное у товара устанавливается только первое значение из переданных в файле обмена.
Ошибка локализована в модуле bitrix/modules/iblock/classes/general/cml2.php
Метод ImportElement класса CIBlockCMLImport
В цикле проверяется полное соответствие на имя ключа, и для множественного типа они устанавливаются как строки
Чтобы работало правильно, достаточно поменять
например, на
или, по аналогии как сделано выше по коду
Установленное решение: Современный интернет-магазин (bitrix.eshop) 24.0.0
Виртуальная машина: VMBitrix 9.0.3 для VirtualBox
Версия PHP: 8.1.30
Загрузка товаров на сайт через скрипт /bitrix/admin/1c_exchange.php работает некорректно.
Для свойств товаров с типом Список и установленным признаком Множественное у товара устанавливается только первое значение из переданных в файле обмена.
Ошибка локализована в модуле bitrix/modules/iblock/classes/general/cml2.php
Метод ImportElement класса CIBlockCMLImport
В цикле проверяется полное соответствие на имя ключа, и для множественного типа они устанавливаются как строки
Чтобы работало правильно, достаточно поменять
| Код |
|---|
if($prop_type == "L" && $k == $l_key) |
например, на
| Код |
|---|
if($prop_type == "L" && ($k == $l_key || strpos($k, $l_key)==0)) |
или, по аналогии как сделано выше по коду
| Код |
|---|
$lPV = mb_strlen($strPV); if($prop_type == "L" && mb_substr($k, 0, $lPV) === $l_key) |
Часть кода с ошибкой | ||
|---|---|---|
|
Установленное решение: Современный интернет-магазин (bitrix.eshop) 24.0.0
Виртуальная машина: VMBitrix 9.0.3 для VirtualBox
Версия PHP: 8.1.30