Массовая загрузка товаров быстро перестаёт быть задачей копирования текста. Нужно сопоставить данные поставщика с требованиями площадки, не создать дубли и сохранить возможность обновлять карточку после публикации.
Один товар — одна история
В моём конвейере центральное место занимает каталог. Внутренний артикул связывает источник, подготовленные данные и идентификаторы площадок. Ссылка поставщика может измениться или потеряться; это не повод автоматически считать товар новым.
Отсюда практическое правило: сначала искать совпадение в общей базе, затем создавать новую запись. Восстановление источника и добавление нового товара — разные операции. Такое разделение защищает каталог от дублей и упрощает дальнейшую синхронизацию.
Где помогает ИИ
Подбор категории — подходящая задача для семантического поиска: формулировки поставщика и маркетплейса могут сильно отличаться. В проекте используются векторы категорий, хранящиеся в MySQL, и сравнение близости. Это даёт кандидатов для дальнейшей проверки без отдельного сервиса векторной базы.
Но близкое название не гарантирует подходящую категорию. Затем важны обязательные свойства, единицы измерения, страна, бренд и формат API. ИИ помогает подготовить решение; проверка структуры и ограничений остаётся частью конвейера.
Публикация — только один из этапов
После создания карточки продолжается работа с ценами, остатками, изображениями и связанными товарами. Полная и выборочная синхронизация решают разные задачи. Очередь, прогресс и повторные попытки позволяют продолжить обработку после временного сбоя.
Это направление я развиваю вместе с интеграциями eMall и Белпочты: данные проходят через справочники площадок, а отдельные действия, например загрузка изображений, учитывают особенности конкретного API.
Что можно сделать для вашего каталога
Начать с одного поставщика и одной площадки: определить источник истины, правила идентификации, обязательные поля и способ проверки результата. После этого расширять цепочку, сохраняя её наблюдаемость. Цель — чтобы сотрудник разбирал исключения, а не повторял одинаковое заполнение сотен форм.