Przejdź do głównej zawartości
DataEase
Wypróbuj za darmo

Migracja z Magento do Shopify

DataEase przenosi sklep Magento 2 (Magento Open Source, Adobe Commerce lub Mage-OS) do Shopify bezpośrednio przez REST API Magento - bez rozszerzeń, eksportów CSV i arkuszy kalkulacyjnych. Tworzysz integrację w Magento, wklejasz jej klucze, wybierasz, co przenieść, a DataEase zajmuje się resztą. Tworzy też przekierowania ze starych adresów URL, dzięki czemu linki i pozycje w wyszukiwarkach działają po zmianie domeny.


MagentoShopifySzczegóły
Produkty proste, wirtualne i do pobraniaProduktyNazwa, opis, status, widoczność, pierwsza kategoria jako typ produktu, obrazy (najpierw obraz główny), SKU, cena i cena specjalna (jako cena porównawcza), koszt, waga, klasa podatkowa, stan magazynowy (w głównej lokalizacji), zamówienia oczekujące, marka (manufacturer), kraj produkcji, tytuł i opis SEO.
Produkty konfigurowalneProdukty z wariantamiAtrybuty konfigurowalne (Color, Size, …) stają się opcjami (maksymalnie 3), a każdy włączony produkt podrzędny - wariantem z własnym SKU, ceną, stanem magazynowym i obrazem.
KategorieKolekcjeKolekcje ręczne z produktami kategorii, opisem, obrazem i SEO. Kategorie zagnieżdżone stają się osobnymi kolekcjami.
KlienciKlienciImię i nazwisko, email, telefon, wszystkie adresy (najpierw domyślny adres wysyłkowy), subskrypcja newslettera. Grupa klienta jest dodawana jako tag, na przykład magento-group-wholesale.
ZamówieniaZamówieniaKopia historyczna z pozycjami (łączonymi z przeniesionymi wariantami po SKU), opcjami wariantów, wysyłką, rabatem, podatkiem, płatnością i zwrotami. Klienci nie otrzymują żadnych emaili.
Reguły cenowe koszykaRabatyReguły z kuponem stają się kodami rabatowymi, a reguły bez kuponu - rabatami automatycznymi: procentowe, stała kwota na pozycję lub na koszyk, darmowa wysyłka, minimalna wartość lub liczba produktów, kraj wysyłki, warunki produktów i kategorii, daty i limity użycia.
Strony CMSStronyTytuł, treść, status, SEO.
Stare adresy URLPrzekierowania URLProdukty i kategorie (z sufiksem .html z ustawień sklepu), strony CMS, koszyk, konto klienta i wyszukiwanie przekierowują na swoje adresy w Shopify.
  • Obrazy w opisach i na stronach są kopiowane do Shopify → Content → Files, a linki aktualizowane, więc nic się nie zepsuje po wyłączeniu starego sklepu.
  • Znaczniki szablonów Magento są konwertowane: {{media url="…"}} staje się adresem obrazu, {{store url="…"}} - linkiem; widżety i bloki CMS są usuwane.
  • Identyfikator Magento każdego rekordu jest zapisywany w metapolu magento.id.
  • Wyłączone produkty są przenoszone jako wersje robocze. Produkty niewidoczne pojedynczo lub nieprzypisane do witryny (website) sklepu są przenoszone, ale nie publikowane w Online Store.

Nie są migrowane: motywy i wygląd, rozszerzenia i ich dane (blogi, recenzje, punkty lojalnościowe), produkty pakietowe (bundle), grupowane i karty podarunkowe, opcje konfigurowalne przez klienta (customizable options), ceny progowe i ceny katalogowe, widoki sklepu w innych językach, ustawienia płatności, wysyłki i podatków, hasła klientów (klienci ustawiają nowe hasło w Shopify).


  • Magento 2.3 lub nowszy (Magento Open Source, Adobe Commerce lub Mage-OS).
  • Użytkownik panelu Magento, który może tworzyć integracje (System → Extensions → Integrations).
  • Sklep musi być dostępny z internetu - DataEase nie połączy się z localhost ani adresem w sieci wewnętrznej. Utrzymuj go online do końca migracji: obrazy są z niego pobierane.
  • Sklep Shopify powinien używać tej samej waluty co Magento - ceny są kopiowane bez zmian, bez przeliczania.

  1. W panelu Magento otwórz System → Extensions → Integrations i kliknij Add New Integration.
  2. Wpisz nazwę, na przykład DataEase, oraz swoje hasło administratora w polu Your Password.
  3. Otwórz kartę API i ustaw Resource Access na All.
  4. Kliknij Save, a następnie Activate obok nowej integracji i Allow.
  5. Magento pokaże cztery klucze: Consumer Key, Consumer Secret, Access Token i Access Token Secret. Skopiuj wszystkie cztery.

Klucze dają dostęp tylko do API i można je w każdej chwili unieważnić. DataEase tylko odczytuje dane - niczego nie zmienia w Magento.

Wolisz przyznać mniejszy dostęp? Zamiast All możesz wybrać konkretne zasoby: sklepy (stores), katalog (produkty, kategorie i stany magazynowe), klientów i grupy klientów, zamówienia sprzedaży, reguły cenowe koszyka i strony CMS. Jeśli czegoś zabraknie, DataEase pokaże, który zasób Magento dodać.

  1. W Shopify otwórz DataEase → Store transfers.
  2. Wybierz kartę From Magento.
  3. Wpisz adres sklepu (na przykład https://myshop.com) i cztery klucze integracji.
  4. Kliknij Check connection.

DataEase pokaże nazwę sklepu, widok sklepu (store view), z którego odczytuje dane, oraz liczbę rekordów każdego typu w sklepie.

Krok 3. Wybierz, co przenieść, i rozpocznij

Section titled “Krok 3. Wybierz, co przenieść, i rozpocznij”
  1. Zaznacz dane, które chcesz przenieść - domyślnie zaznaczone jest wszystko, co znaleziono w sklepie.
  2. Kliknij Start migration.

Migracja działa w tle - możesz zamknąć stronę. Lista Transfers pokazuje, jakie dane są właśnie przenoszone, a w każdej chwili możesz ją przerwać przyciskiem Cancel.

Po zakończeniu migracji lista pokazuje, ile rekordów każdego typu przeniesiono, wraz z ostrzeżeniami, błędami i ich przyczynami - na przykład Orders: 1250 ⚠3. Typowe ostrzeżenia dotyczą reguł cenowych koszyka z warunkami nieobsługiwanymi przez Shopify lub rekordów, które zostały przeniesione wcześniej.


  1. Przejrzyj produkty, kolekcje i ceny w panelu Shopify.
  2. Skonfiguruj płatności, wysyłkę i podatki - nie są migrowane.
  3. Wybierz i dostosuj motyw, a następnie dodaj przeniesione strony i kolekcje do menu nawigacji.
  4. Podłącz domenę do Shopify. Stare linki, takie jak /joust-duffle-bag.html, przekierowują teraz na /products/joust-duffle-bag.
  5. Usuń integrację w Magento (System → Extensions → Integrations). DataEase usuwa klucze ze swojej bazy danych zaraz po zakończeniu migracji.

Migrację możesz uruchomić ponownie w dowolnym momencie - na przykład tuż przed zmianą domeny, aby przenieść nowe zamówienia. Istniejące rekordy są aktualizowane, a nie duplikowane:

  • produkty, kolekcje, klienci i strony są dopasowywane po handle lub emailu i aktualizowane;
  • zamówienia przeniesione wcześniej, istniejące kody rabatowe, rabaty automatyczne o tej samej nazwie i istniejące przekierowania są pomijane (zobaczysz ostrzeżenie z ich liczbą);
  • obrazy już skopiowane do Shopify Files są wykorzystywane ponownie.

  • Handle: klucz URL produktu, dzięki czemu adresy produktów pozostają rozpoznawalne.
  • Status: Enabled → Active; Disabled → Draft.
  • Ceny: aktywna cena specjalna staje się ceną w Shopify, a cena regularna - ceną porównawczą. Daty obowiązywania ceny specjalnej są uwzględniane według stanu w chwili migracji.
  • Stan magazynowy: ilości trafiają do głównej lokalizacji. Produkty z dozwolonymi zamówieniami oczekującymi (backorders) są nadal sprzedawane po wyczerpaniu zapasów.
  • Opcje: atrybuty produktu konfigurowalnego stają się opcjami w tej samej kolejności, a wartości - w kolejności opcji atrybutu. Shopify obsługuje do 3 opcji i 2048 wariantów na produkt; produkty z większą liczbą opcji są pomijane z ostrzeżeniem. Wyłączone produkty podrzędne nie są migrowane.
  • Podatek: produkty z klasą podatkową None nie podlegają opodatkowaniu.
  • Krótki opis jest zapisywany w metapolu magento.short_description.
Stan w MagentoStatus płatności w ShopifyRealizacja
Pending (new), On holdPending (lub Paid, jeśli wystawiono fakturę)Unfulfilled
ProcessingPaid (lub Partially paid)Unfulfilled albo Fulfilled, gdy wszystko zostało wysłane
CompletePaidFulfilled
ClosedRefunded (lub Partially refunded)-
CanceledVoided-

Status płatności jest wyliczany na podstawie kwot, które Magento zarejestrowało jako zapłacone i zwrócone. Zamówienia ze stanem Pending payment lub Payment review nie są migrowane. Każde przeniesione zamówienie otrzymuje tag magento i tag magento-<status> (na przykład magento-complete) oraz zachowuje swój numer z Magento (#000000145).

MagentoShopify
Reguła z konkretnym kuponem (Specific Coupon)Kod rabatowy
Reguła bez kuponuRabat automatyczny
Percent of product price discountRabat procentowy
Fixed amount discountStała kwota rabatu na każdą kwalifikującą się pozycję
Fixed amount discount for whole cartStała kwota rabatu na zamówienie
Darmowa wysyłka (kwota rabatu 0)Rabat na darmową wysyłkę
Warunek Subtotal equals or greater thanMinimalna kwota zakupu
Warunek Total items quantityMinimalna liczba produktów
Warunek Shipping country (darmowa wysyłka)Wysyłka do wybranych krajów
Warunek akcji SKU lub CategoryWybrane produkty lub kolekcje
Uses per coupon / Uses per customer = 1Limit użycia / Jedno użycie na klienta
Discard subsequent rulesNie łączy się z innymi rabatami

DataEase nigdy nie tworzy rabatu szerszego niż w Magento. Reguły ograniczone do wybranych grup klientów, reguły z warunkami, których Shopify nie potrafi odwzorować (metoda płatności, atrybuty koszyka, warunki złożone), oraz reguły Buy X get Y są pomijane z ostrzeżeniem - utwórz je ręcznie. Nieaktywne reguły i automatycznie generowane kody kuponów nie są migrowane.


KomunikatCo zrobić
Magento rejected the integration keysSprawdź wszystkie cztery klucze i upewnij się, że integracja jest aktywna. Jeśli autoryzowano ją ponownie, skopiuj nowy access token i secret.
The consumer isn’t authorized to access …Edytuj integrację, ustaw Resource Access na All (lub dodaj zasób z komunikatu) i zapisz.
Magento REST API endpoint … was not foundSprawdź adres sklepu - użyj adresu witryny sklepu, a nie adresu panelu administracyjnego.
returned a non-JSON responseZapora, tryb konserwacji lub cache blokuje REST API. Zezwól na żądania /rest/ na czas migracji.
must be reachable from the internetUżyj publicznego adresu sklepu, a nie localhost ani wewnętrznego IP.
Image … was not copiedAdres URL obrazu był niedostępny. Strona zachowuje stary link - prześlij obraz ręcznie w Content → Files.

Czy klienci dostają emaile? Nie. Klienci i zamówienia są tworzeni bez powiadomień i zaproszeń.

Czy mój sklep Magento się zmienia? Nie. DataEase tylko z niego odczytuje dane.

Czy klucze integracji są przechowywane? Tylko w trakcie migracji, w postaci zaszyfrowanej. Są usuwane, gdy migracja się zakończy, nie powiedzie lub zostanie anulowana.

Mam kilka witryn (websites) lub widoków sklepu. Który z nich jest migrowany? Domyślny widok sklepu domyślnej witryny: jego nazwy, opisy, ceny i adresy URL.

Przenosisz się z WordPress albo między dwoma sklepami Shopify? Zobacz Migracja z WordPress / WooCommerce oraz Transfery sklepów.