Привет всем.
Хочу поднять тему которая периодически всплывает на форуме — дубли товаров после выгрузки из 1С. Расскажу что происходит и как мы это решили.
Проблема
После очередного импорта из 1С в каталоге появляются новые товары — хотя это те же самые позиции которые уже были. CS-Cart не узнаёт их и создаёт дубликаты вместо обновления существующих записей.
Причина: 1С иногда перегенерирует внутренние идентификаторы (UUID) для товаров — после переустановки базы, обновления конфигурации или по другим причинам. CS-Cart ищет товар по UUID из XML-файла, не находит совпадения и создаёт новый.
В итоге один и тот же товар существует дважды с разными product_id. Часть заказов, отзывов и статистики уходит на старую запись, часть — на новую.
Решение
Сопоставление по артикулу (product_code) вместо UUID. Модуль читает XML-файл из 1С, находит товары где UUID изменился, сопоставляет их с существующими записями по артикулу и обновляет UUID в базе до импорта. CS-Cart видит знакомый UUID и обновляет товар, а не создаёт новый.
Предпросмотр перед применением
Всё работает в два шага — сначала видите список предстоящих замен, потом нажимаете «Применить». Строки где название товара в XML и на сайте не совпадает — выделены отдельно. Это защита от ошибочных замен.
Поиск дублей
Отдельная страница показывает два типа дублей:
- Дубли на сайте — товары с одинаковым артикулом в базе данных CS-Cart
- Дубли в XML-файле — артикулы которые встречаются больше одного раза в выгрузке из 1С. Сигнал о проблеме на стороне 1С — при импорте невозможно понять какую из записей использовать
Пропущенные записи и журнал ошибок
Часто часть товаров при импорте молча пропускается — без ошибки, просто не появляется. Модуль показывает до 150 последних пропущенных записей с причиной из commerceml.log и ссылкой на товар если он найден на сайте.
Отдельно — журнал ошибок CommerceML: сканирует все файлы commerceml.log*, группирует ошибки, убирает дубли, добавляет прямые ссылки на редактирование товаров.
Откат
После применения замен кнопка «Откат» активна в течение текущей сессии. Если что-то пошло не так — мгновенный возврат к предыдущему состоянию.
Модуль: https://marketplace.cs-cart.com/1c-import-cs-cart.html
Кто сталкивался с дублями после импорта из 1С — как решали? Интересно узнать другие подходы.






