Где возникла проблема:
CS-cart RUS v4.13 sp 2
Модуль CommerceML (1С, МойСклад, Бизнес.Ру) [Beta]
Суть проблемы:
Если проводится импорт части товаров, в файле импорта могут быть не всё дерево категорий из 1С, а только те, которые импортируются. Из таблицы commerceml_import_entity_map данные удаляются.
- При последующем импорте полного дерева, создаются дубли категорий и меняются local_id в таблице commerceml_import_entity_map .
После импорта в таблице commerceml_import_entity_map создаются связи категорий.
Пример таблицы https://skr.sh/s8jrRfgdBKS
Часть связей создалась, а часть проигнорированы. local_id - та самая привязка к id категории, которая создалась.
Если в последующем файле обмена (import0_2.xml) размещается структура с категориями, то создаются дубли категорий.
- Что замечено, если импорт разбит на файлы, то данные по категориям загружаются только те, товары которых есть в файле.
В нашем примере 4 категории, в первом файле import.xml товары первых двух категорий, во втором файле import0_2.xml товары вторых двух категорий. Полное дерево категорий есть только в первом файле.
В итоге получаем на сайте только 2 первые созданные категории, так как модуль обмена не увидел товаров в первом файле вторых двух категорий.
Далее 1С отправляет второй файл (без категорий, только товары). А сайт категории из первого файла - не создал. В итоге вторая часть товаров размещается в категории по умолчанию.
Как воспроизвести проблему:
Скорее всего, при разработке модуля тестировали на одном файле, но когда товаров много, выгрузка делится на несколько файлов import.xml, а категории и свойства содержит только первый файл.
p|s тестирование велось ручным запуском импорта. - именно тогда создавались дубли категорий.
При обмене с 1С - вариант когда как раз категории создавались частично.