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

Почему массовая загрузка — это миграция, а не кнопка импорта
Каталог связывает товары, варианты, изображения, цены, остатки, категории, свойства, SEO-адреса и внешние системы. Ошибка в одном ключе может не остановить загрузку, но создаст дубли, потеряет варианты или привяжет остаток к неверной позиции. Поэтому технический успех запроса ещё не означает корректный перенос бизнеса.
Надёжный импорт разделяет извлечение, нормализацию, сопоставление, загрузку и сверку. Каждая запись получает устойчивый внешний идентификатор, каждая трансформация воспроизводится, а спорные строки попадают в отдельный разбор. Такой конвейер можно повторить без умножения данных и использовать для последующих обновлений.
Ошибки массового импорта
Опасны не только остановившиеся строки, но и правдоподобные данные, оказавшиеся не на своём месте.
- Использовать название или порядковый номер строки как постоянный идентификатор и получать дубли после следующей выгрузки.
- Заменять неизвестные значения ближайшим справочником без журнала и тем самым скрывать качество исходных данных.
- Отправлять весь объём одной операцией без партий, статусов и возможности продолжить с безопасной точки.
- Проверять только число товаров и не сверять варианты, связи категорий, изображения, цены, остатки и SEO-адреса.
- Удалять отсутствующие в новой выгрузке позиции автоматически, не отличая намеренное удаление от неполного источника.
Что подготовить до первой загрузки
Самая важная работа выполняется до импорта: нужно понять структуру источника и правила целевой системы.
- Составьте карту сущностей и связей: товар, вариант, категория, коллекция, цена, склад, изображение, характеристика и документ. Укажите владельца и источник правды для каждого поля.
- Выберите устойчивые внешние ключи, которые не меняются при исправлении названия или URL. Отдельно опишите правила сопоставления старых и новых идентификаторов.
- Профилируйте данные: кодировки, разделители, пустые значения, дубли, единицы измерения, форматы дат, валюты, HTML и максимальную длину полей.
- Согласуйте обязательные атрибуты, допустимые справочники, правила вариантов и поведение при неизвестном значении. Молчаливая подстановка опаснее явной ошибки.
- Зафиксируйте объём, окно переключения, допустимый простой, резервную копию, критерии отката и способ сверки с заказами и внешними каналами.
Как устроить повторяемый конвейер
Даже разовая миграция выигрывает от тех же гарантий, что и постоянная интеграция.
- Хранилище запуска фиксирует версию входных данных, конфигурацию преобразования, начавшиеся и завершённые партии, ошибки и итоговые агрегаты.
- Очередь ограничивает нагрузку, поддерживает безопасные повторы с задержкой и отправляет неисправимые записи в отдельный набор для ручного решения.
- Таблица соответствий связывает внешний ключ, целевой идентификатор, версию и время изменения; она нужна для дельты, ссылок и отката.
- Медиа загружаются отдельно с проверкой типа, размера, контрольной суммы и доступности, чтобы один большой файл не блокировал основные данные.
- Отчёт сверки показывает пропуски, дубли, изменившиеся связи и отклонения бизнес-агрегатов по категориям, складам и ценовым сегментам.
Пошаговый план импорта большого каталога
Сначала докажите корректность на небольшой репрезентативной выборке, затем увеличивайте объём контролируемыми партиями.
- Выгрузите неизменяемый снимок источника и сохраните контрольные суммы, время, версии схемы и число записей по сущностям. Рабочая миграция должна быть воспроизводимой.
- Преобразуйте данные в промежуточную модель, не привязанную к случайному формату CSV или API. Сохраняйте исходное значение рядом с нормализованным для разбора ошибок.
- Выполните автоматическую валидацию обязательных полей, типов, справочников, связей, уникальности, URL изображений и допустимых диапазонов цены и остатка.
- Загрузите тестовую выборку с простым товаром, вариантами, несколькими категориями, отсутствующим изображением, длинным описанием и намеренно ошибочной строкой. Проверьте ожидаемую реакцию.
- Реализуйте идемпотентную операцию upsert по внешнему ключу. Повтор партии должен обновлять ту же сущность, а не создавать копию.
- Разделите полный импорт на управляемые партии, ограничьте параллелизм по возможностям API, записывайте статус каждой строки и повторяйте только временные ошибки.
- После загрузки пересчитайте число товаров, вариантов, категорий, изображений и связей. Сверьте контрольные суммы и бизнес-агрегаты, а не только количество успешных HTTP-ответов.
- Заморозьте изменения на короткое окно, перенесите дельту после снимка, переключите потребителей и проведите финальную сверку до снятия возможности отката.
Как подтвердить качество миграции
Сравнивайте вход, результат и влияние на рабочие процессы после переключения.
- Количество принятых, отклонённых, пропущенных, обновлённых и созданных записей по каждой сущности и партии.
- Долю дублей внешних ключей, неизвестных справочников, потерянных связей и медиа с ошибкой загрузки.
- Совпадение числа товаров и вариантов, сумм остатков, диапазонов цен и распределения по категориям между источником и целью.
- Время полного запуска и дельты, скорость партии, долю временных повторов и среднее время разбора неисправимой строки.
- Число обращений, отмен и ручных исправлений, связанных с каталогом, в первые дни после переключения.
Итог
Большой каталог импортируют через версионируемый конвейер: снимок, промежуточную модель, валидацию, идемпотентную загрузку партиями и независимую сверку. Это позволяет повторять операцию и точно объяснять результат.
Переходить на новый каталог стоит только после сравнения связей и бизнес-агрегатов и переноса финальной дельты. Успешная команда API без такой проверки не подтверждает сохранность данных.
Контрольные этапы миграции каталога
- Этап 1 — карта данных, внешние ключи, профиль качества, правила преобразования и критерии отката.
- Этап 2 — промежуточная модель, автоматическая валидация и тестовая выборка со всеми типами исключений.
- Этап 3 — идемпотентная загрузка партиями, журнал строк, отдельная обработка медиа и техническая сверка.
- Этап 4 — перенос дельты, бизнес-сверка, переключение потребителей и наблюдение после запуска.
Источники
- Importing products with a CSV file
Shopify Help Center / доступ 2026-09-26
Официальное руководство по массовому импорту товаров и ограничениям CSV.
- Using CSV files to import and export products
Shopify Help Center / доступ 2026-09-26
Требования к структуре CSV, вариантам, изображениям и обновлению существующих товаров.
- Product data specification
Google Merchant Center Help / доступ 2026-09-26
Официальная спецификация товарных атрибутов, идентификаторов и требований к качеству данных.
FAQ
Какой размер партии выбрать?
Он зависит от ограничений API, размера записей и времени повторной обработки. Начните с малой партии, измерьте задержку и ошибки, затем увеличивайте до устойчивого уровня, сохраняя возможность точечного повтора.
Нужно ли сначала загрузить изображения?
Обычно основные сущности и их идентификаторы создают раньше, а медиа обрабатывают отдельным конвейером. Так проблемы больших файлов не блокируют структуру каталога.
Как не создать дубли при повторе?
Используйте стабильный внешний ключ и upsert, храните таблицу соответствий и не меняйте правила идентификации между партиями без отдельной миграции.
Что делать с ошибочными строками?
Не останавливать весь объём и не игнорировать их. Сохраните исходную запись, код и причину ошибки, отделите временные сбои от ошибок данных и повторите после исправления.

