Перейти к содержимому
DataEase
Попробовать бесплатно

Миграция с Magento на Shopify

DataEase переносит магазин на Magento 2 (Magento Open Source, Adobe Commerce или Mage-OS) в Shopify напрямую через REST API Magento - без расширений, CSV-экспорта и таблиц. Вы создаёте интеграцию в Magento, вставляете её ключи, выбираете, что перенести, а остальное DataEase сделает сам. Он также создаёт редиректы со старых URL, чтобы ссылки и позиции в поиске продолжали работать после смены домена.


MagentoShopifyПодробности
Простые, виртуальные и загружаемые товарыТоварыНазвание, описание, статус, видимость, первая категория как тип товара, изображения (сначала основное), SKU, цена и специальная цена (как цена для сравнения), себестоимость, вес, налоговый класс, остаток (на основной локации), предзаказ, бренд (manufacturer), страна производства, SEO-заголовок и описание.
Конфигурируемые товарыТовары с вариантамиКонфигурируемые атрибуты (Color, Size, …) становятся опциями (до 3), каждый включённый дочерний товар становится вариантом со своим SKU, ценой, остатком и изображением.
КатегорииКоллекцииРучные коллекции с товарами категории, описанием, изображением и SEO. Вложенные категории становятся отдельными коллекциями.
КлиентыКлиентыИмя, email, телефон, все адреса (сначала адрес доставки по умолчанию), подписка на рассылку. Группа клиента добавляется как тег, например magento-group-wholesale.
ЗаказыЗаказыИсторическая копия с позициями (связаны с перенесёнными вариантами по SKU), опциями вариантов, доставкой, скидкой, налогом, оплатой и возвратами. Клиентам не отправляются никакие письма.
Правила скидок корзины (cart price rules)СкидкиПравила с купоном становятся кодами скидок, правила без купона - автоматическими скидками: процент, фиксированная сумма на товар или на корзину, бесплатная доставка, минимальная сумма или количество, страна доставки, условия по товарам и категориям, даты и лимиты использования.
CMS-страницыСтраницыЗаголовок, содержимое, статус, SEO.
Старые URLURL-редиректыТовары и категории (с суффиксом .html из настроек вашего магазина), CMS-страницы, корзина, личный кабинет клиента и поиск перенаправляются на свои адреса в Shopify.
  • Изображения внутри описаний и страниц копируются в Shopify → Content → Files, а ссылки обновляются, так что ничего не сломается, когда старый магазин отключится.
  • Шаблонные теги Magento преобразуются: {{media url="…"}} становится адресом изображения, {{store url="…"}} - ссылкой; виджеты и CMS-блоки удаляются.
  • Magento ID каждой записи сохраняется в метаполе magento.id.
  • Отключённые товары переносятся как черновики. Товары, которые не видны по отдельности или не привязаны к сайту магазина, переносятся, но не публикуются в Online Store.

Не переносятся: темы и дизайн, расширения и их данные (блоги, отзывы, бонусные баллы), комплекты (bundle), сгруппированные товары и подарочные карты, настраиваемые опции (customizable options), многоуровневые цены и цены каталога, представления магазина (store views) на других языках, настройки оплаты, доставки и налогов, пароли клиентов (клиенты задают новый пароль в Shopify).


  • Magento 2.3 или новее (Magento Open Source, Adobe Commerce или Mage-OS).
  • Администратор Magento, который может создавать интеграции (System → Extensions → Integrations).
  • Магазин должен быть доступен из интернета - DataEase не может подключиться к localhost или адресу во внутренней сети. Держите его онлайн до конца миграции: изображения загружаются с него.
  • Магазин Shopify должен использовать ту же валюту, что и Magento - цены копируются как есть, без пересчёта.

Шаг 1. Создайте интеграцию в Magento

Section titled “Шаг 1. Создайте интеграцию в Magento”
  1. В админке Magento откройте System → Extensions → Integrations и нажмите Add New Integration.
  2. Введите название, например DataEase, и свой пароль администратора в поле Your Password.
  3. Откройте вкладку API и установите Resource Access в значение All.
  4. Нажмите Save, затем нажмите Activate рядом с новой интеграцией и Allow.
  5. Magento покажет четыре ключа: Consumer Key, Consumer Secret, Access Token и Access Token Secret. Скопируйте все четыре.

Ключи дают доступ только к API и могут быть отозваны в любой момент. DataEase только читает данные - он ничего не меняет в Magento.

Хотите дать меньше доступа? Вместо All можно выбрать отдельные ресурсы: магазины (stores), каталог (товары, категории и остатки), клиенты и группы клиентов, заказы, правила скидок корзины и CMS-страницы. Если чего-то не хватает, DataEase покажет, какой ресурс Magento нужно добавить.

Шаг 2. Подключите магазин в DataEase

Section titled “Шаг 2. Подключите магазин в DataEase”
  1. В Shopify откройте DataEase → Store transfers.
  2. Выберите вкладку From Magento.
  3. Введите адрес магазина (например, https://myshop.com) и четыре ключа интеграции.
  4. Нажмите Check connection.

DataEase покажет название магазина, представление магазина (store view), из которого читаются данные, и сколько записей каждого типа есть в магазине.

Шаг 3. Выберите, что перенести, и начните

Section titled “Шаг 3. Выберите, что перенести, и начните”
  1. Отметьте данные, которые хотите перенести - по умолчанию выбрано всё, что найдено в магазине.
  2. Нажмите Start migration.

Миграция выполняется в фоне - страницу можно закрыть. В списке Transfers видно, какие данные переносятся прямо сейчас, и в любой момент можно нажать Cancel.

Шаг 4. Проверьте результат

Section titled “Шаг 4. Проверьте результат”

Когда миграция завершится, в списке будет видно, сколько записей каждого типа перенесено, с предупреждениями, ошибками и их причинами - например, Orders: 1250 ⚠3. Типичные предупреждения - правила скидок корзины с условиями, которые Shopify не поддерживает, или записи, уже перенесённые ранее.


  1. Проверьте товары, коллекции и цены в админке Shopify.
  2. Настройте оплату, доставку и налоги - они не переносятся.
  3. Выберите и настройте тему, затем добавьте перенесённые страницы и коллекции в меню навигации.
  4. Подключите домен к Shopify. Старые ссылки вида /joust-duffle-bag.html теперь перенаправляются на /products/joust-duffle-bag.
  5. Удалите интеграцию в Magento (System → Extensions → Integrations). DataEase удаляет ключи из своей базы данных сразу после завершения миграции.

Миграцию можно запустить снова в любой момент - например, прямо перед сменой домена, чтобы подхватить новые заказы. Существующие записи обновляются, а не дублируются:

  • товары, коллекции, клиенты и страницы сопоставляются по handle или email и обновляются;
  • ранее перенесённые заказы, существующие коды скидок, автоматические скидки с тем же названием и существующие редиректы пропускаются (вы увидите предупреждение с их количеством);
  • изображения, уже скопированные в Shopify Files, используются повторно.

Как сопоставляются данные

Section titled “Как сопоставляются данные”
  • Handle: URL-ключ товара (URL key), так что адреса товаров остаются узнаваемыми.
  • Статус: Enabled → Active; Disabled → Draft.
  • Цены: действующая специальная цена становится ценой в Shopify, а обычная цена - ценой для сравнения. Даты действия специальной цены учитываются на момент миграции.
  • Остатки: количества попадают на основную локацию. Товары с разрешённым предзаказом (backorders) продолжают продаваться, когда закончились на складе.
  • Опции: атрибуты конфигурируемого товара становятся опциями в том же порядке, значения - в порядке вариантов атрибута. Shopify поддерживает до 3 опций и 2048 вариантов на товар; товары с бо́льшим числом опций пропускаются с предупреждением. Отключённые дочерние товары не переносятся.
  • Налог: товары с налоговым классом None не облагаются налогом.
  • Краткое описание сохраняется в метаполе magento.short_description.
Состояние в MagentoСтатус оплаты в ShopifyВыполнение
Pending (new), On holdPending (или Paid, если выставлен счёт)Unfulfilled
ProcessingPaid (или Partially paid)Unfulfilled, или Fulfilled, если всё отгружено
CompletePaidFulfilled
ClosedRefunded (или Partially refunded)-
CanceledVoided-

Статус оплаты рассчитывается по суммам, которые Magento записал как оплаченные и возвращённые. Заказы в статусах Pending payment и Payment review не переносятся. Каждый перенесённый заказ получает тег magento и тег magento-<status> (например, magento-complete) и сохраняет свой номер из Magento (#000000145).

Правила скидок корзины

Section titled “Правила скидок корзины”
MagentoShopify
Правило с конкретным купоном (Specific Coupon)Код скидки
Правило без купонаАвтоматическая скидка
Percent of product price discountСкидка в процентах
Fixed amount discountФиксированная сумма с каждой подходящей позиции
Fixed amount discount for whole cartФиксированная сумма со всего заказа
Бесплатная доставка (сумма скидки 0)Скидка на бесплатную доставку
Условие Subtotal equals or greater thanМинимальная сумма покупки
Условие Total items quantityМинимальное количество товаров
Условие Shipping country (бесплатная доставка)Доставка в выбранные страны
Условие действия SKU или CategoryОпределённые товары или коллекции
Uses per coupon / Uses per customer = 1Лимит использований / Одно использование на клиента
Discard subsequent rulesНе сочетается с другими скидками

DataEase никогда не делает скидку шире, чем она была в Magento. Правила, ограниченные отдельными группами клиентов, правила с условиями, которые Shopify не может выразить (способ оплаты, атрибуты корзины, комбинированные условия), и правила Buy X get Y пропускаются с предупреждением - создайте их заново вручную. Неактивные правила и автоматически сгенерированные коды купонов не переносятся.


СообщениеЧто делать
Magento rejected the integration keysПроверьте все четыре ключа и убедитесь, что интеграция активна (Active). Если вы повторно авторизовали её, скопируйте новые Access Token и Access Token Secret.
The consumer isn’t authorized to access …Отредактируйте интеграцию, установите Resource Access в значение All (или добавьте ресурс из сообщения) и сохраните.
Magento REST API endpoint … was not foundПроверьте адрес магазина - используйте адрес витрины, а не URL админки.
returned a non-JSON responseФайрвол, режим обслуживания или кеш блокирует REST API. Разрешите запросы к /rest/ на время миграции.
must be reachable from the internetИспользуйте публичный адрес магазина, а не localhost или внутренний IP.
Image … was not copiedURL изображения был недоступен. Страница сохраняет старую ссылку - загрузите изображение в Content → Files вручную.

Получают ли клиенты письма? Нет. Клиенты и заказы создаются без уведомлений и приглашений.

Изменяется ли мой магазин на Magento? Нет. DataEase только читает из него данные.

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

У меня несколько сайтов (websites) или представлений магазина (store views). Какое из них переносится? Представление магазина по умолчанию на сайте по умолчанию: его названия, описания, цены и URL.

Переезжаете с WordPress или переносите данные между двумя магазинами Shopify? См. Миграция с WordPress / WooCommerce и Перенос между магазинами.