Импорт большого каталога: план миграции без потери товаров

Как импортировать большой каталог: подготовить идентификаторы и атрибуты, настроить преобразование, тестовую загрузку, валидацию, повторы и итоговую сверку данных.

Команда переносит массив данных по защищённому мосту без потерь
Команда переносит массив данных по защищённому мосту без потерьРедакция Малевич · 17 мин

Почему массовая загрузка — это миграция, а не кнопка импорта

Каталог связывает товары, варианты, изображения, цены, остатки, категории, свойства, SEO-адреса и внешние системы. Ошибка в одном ключе может не остановить загрузку, но создаст дубли, потеряет варианты или привяжет остаток к неверной позиции. Поэтому технический успех запроса ещё не означает корректный перенос бизнеса.

Надёжный импорт разделяет извлечение, нормализацию, сопоставление, загрузку и сверку. Каждая запись получает устойчивый внешний идентификатор, каждая трансформация воспроизводится, а спорные строки попадают в отдельный разбор. Такой конвейер можно повторить без умножения данных и использовать для последующих обновлений.

Ошибки массового импорта

Опасны не только остановившиеся строки, но и правдоподобные данные, оказавшиеся не на своём месте.

  • Использовать название или порядковый номер строки как постоянный идентификатор и получать дубли после следующей выгрузки.
  • Заменять неизвестные значения ближайшим справочником без журнала и тем самым скрывать качество исходных данных.
  • Отправлять весь объём одной операцией без партий, статусов и возможности продолжить с безопасной точки.
  • Проверять только число товаров и не сверять варианты, связи категорий, изображения, цены, остатки и SEO-адреса.
  • Удалять отсутствующие в новой выгрузке позиции автоматически, не отличая намеренное удаление от неполного источника.

Что подготовить до первой загрузки

Самая важная работа выполняется до импорта: нужно понять структуру источника и правила целевой системы.

  • Составьте карту сущностей и связей: товар, вариант, категория, коллекция, цена, склад, изображение, характеристика и документ. Укажите владельца и источник правды для каждого поля.
  • Выберите устойчивые внешние ключи, которые не меняются при исправлении названия или URL. Отдельно опишите правила сопоставления старых и новых идентификаторов.
  • Профилируйте данные: кодировки, разделители, пустые значения, дубли, единицы измерения, форматы дат, валюты, HTML и максимальную длину полей.
  • Согласуйте обязательные атрибуты, допустимые справочники, правила вариантов и поведение при неизвестном значении. Молчаливая подстановка опаснее явной ошибки.
  • Зафиксируйте объём, окно переключения, допустимый простой, резервную копию, критерии отката и способ сверки с заказами и внешними каналами.

Как устроить повторяемый конвейер

Даже разовая миграция выигрывает от тех же гарантий, что и постоянная интеграция.

  • Хранилище запуска фиксирует версию входных данных, конфигурацию преобразования, начавшиеся и завершённые партии, ошибки и итоговые агрегаты.
  • Очередь ограничивает нагрузку, поддерживает безопасные повторы с задержкой и отправляет неисправимые записи в отдельный набор для ручного решения.
  • Таблица соответствий связывает внешний ключ, целевой идентификатор, версию и время изменения; она нужна для дельты, ссылок и отката.
  • Медиа загружаются отдельно с проверкой типа, размера, контрольной суммы и доступности, чтобы один большой файл не блокировал основные данные.
  • Отчёт сверки показывает пропуски, дубли, изменившиеся связи и отклонения бизнес-агрегатов по категориям, складам и ценовым сегментам.

Пошаговый план импорта большого каталога

Сначала докажите корректность на небольшой репрезентативной выборке, затем увеличивайте объём контролируемыми партиями.

  • Выгрузите неизменяемый снимок источника и сохраните контрольные суммы, время, версии схемы и число записей по сущностям. Рабочая миграция должна быть воспроизводимой.
  • Преобразуйте данные в промежуточную модель, не привязанную к случайному формату CSV или API. Сохраняйте исходное значение рядом с нормализованным для разбора ошибок.
  • Выполните автоматическую валидацию обязательных полей, типов, справочников, связей, уникальности, URL изображений и допустимых диапазонов цены и остатка.
  • Загрузите тестовую выборку с простым товаром, вариантами, несколькими категориями, отсутствующим изображением, длинным описанием и намеренно ошибочной строкой. Проверьте ожидаемую реакцию.
  • Реализуйте идемпотентную операцию upsert по внешнему ключу. Повтор партии должен обновлять ту же сущность, а не создавать копию.
  • Разделите полный импорт на управляемые партии, ограничьте параллелизм по возможностям API, записывайте статус каждой строки и повторяйте только временные ошибки.
  • После загрузки пересчитайте число товаров, вариантов, категорий, изображений и связей. Сверьте контрольные суммы и бизнес-агрегаты, а не только количество успешных HTTP-ответов.
  • Заморозьте изменения на короткое окно, перенесите дельту после снимка, переключите потребителей и проведите финальную сверку до снятия возможности отката.

Как подтвердить качество миграции

Сравнивайте вход, результат и влияние на рабочие процессы после переключения.

  • Количество принятых, отклонённых, пропущенных, обновлённых и созданных записей по каждой сущности и партии.
  • Долю дублей внешних ключей, неизвестных справочников, потерянных связей и медиа с ошибкой загрузки.
  • Совпадение числа товаров и вариантов, сумм остатков, диапазонов цен и распределения по категориям между источником и целью.
  • Время полного запуска и дельты, скорость партии, долю временных повторов и среднее время разбора неисправимой строки.
  • Число обращений, отмен и ручных исправлений, связанных с каталогом, в первые дни после переключения.

Итог

Большой каталог импортируют через версионируемый конвейер: снимок, промежуточную модель, валидацию, идемпотентную загрузку партиями и независимую сверку. Это позволяет повторять операцию и точно объяснять результат.

Переходить на новый каталог стоит только после сравнения связей и бизнес-агрегатов и переноса финальной дельты. Успешная команда API без такой проверки не подтверждает сохранность данных.

Контрольные этапы миграции каталога

  • Этап 1 — карта данных, внешние ключи, профиль качества, правила преобразования и критерии отката.
  • Этап 2 — промежуточная модель, автоматическая валидация и тестовая выборка со всеми типами исключений.
  • Этап 3 — идемпотентная загрузка партиями, журнал строк, отдельная обработка медиа и техническая сверка.
  • Этап 4 — перенос дельты, бизнес-сверка, переключение потребителей и наблюдение после запуска.

Источники

  1. Importing products with a CSV file

    Shopify Help Center / доступ 2026-09-26

    Официальное руководство по массовому импорту товаров и ограничениям CSV.

  2. Using CSV files to import and export products

    Shopify Help Center / доступ 2026-09-26

    Требования к структуре CSV, вариантам, изображениям и обновлению существующих товаров.

  3. Product data specification

    Google Merchant Center Help / доступ 2026-09-26

    Официальная спецификация товарных атрибутов, идентификаторов и требований к качеству данных.

FAQ

Какой размер партии выбрать?

Он зависит от ограничений API, размера записей и времени повторной обработки. Начните с малой партии, измерьте задержку и ошибки, затем увеличивайте до устойчивого уровня, сохраняя возможность точечного повтора.

Нужно ли сначала загрузить изображения?

Обычно основные сущности и их идентификаторы создают раньше, а медиа обрабатывают отдельным конвейером. Так проблемы больших файлов не блокируют структуру каталога.

Как не создать дубли при повторе?

Используйте стабильный внешний ключ и upsert, храните таблицу соответствий и не меняйте правила идентификации между партиями без отдельной миграции.

Что делать с ошибочными строками?

Не останавливать весь объём и не игнорировать их. Сохраните исходную запись, код и причину ошибки, отделите временные сбои от ошибок данных и повторите после исправления.

Сделайте следующий шаг.

Разберём, как применить выводы из материала к вашему продукту, процессу или системе.

Обсудить проект