Migracja Shopify do PrestaShop: pełny przewodnik
Instalacja, połączenie z Shopify, konfiguracja i pełna procedura migracji do PrestaShop 8 i 9.
Prezentacja
dfmigrateshopify importuje całą zawartość sklepu Shopify do PrestaShop 8 lub 9: produkty z wariantami i zdjęciami, klientów z adresami, historyczne zamówienia, kolekcje konwertowane na kategorie, przekierowania 301 i opinie klientów. Moduł pracuje w trybie tylko do odczytu po stronie Shopify: żadnego zapisu, żadnej modyfikacji sklepu źródłowego.
Instalacja
- Back office PrestaShop → Moduły → Menedżer modułów → Wgraj moduł.
- Wybierz plik
dfmigrateshopify.zipi zainstaluj. - Nowy ekran pojawia się w Ustawienia zaawansowane → Migracja Shopify.
Instalacja tworzy 4 tabele z prefiksem dfmigshop_: mapping (odpowiedniki Shopify ↔ PrestaShop), log, redirect i job.
Utworzenie tokenu Shopify
W panelu administracyjnym źródłowego sklepu Shopify:
- Settings → Apps and sales channels → Develop apps → Create an app.
- Zakładka Configuration → Admin API integration → Configure.
- Zaznacz zakresy:
read_products,read_inventory,read_product_listings,read_customers,read_orders,read_content. - Zainstaluj aplikację w sklepie i skopiuj Admin API access token (zaczyna się od
shpat_).
Shopify wyświetla token tylko raz. Zachowaj go w bezpiecznym miejscu.
Połączenie
Zakładka Połączenie w module: podaj domenę (moj-sklep.myshopify.com, bez https://), token oraz wersję API (domyślnie 2024-10). Kliknij Testuj połączenie: nazwa sklepu powinna wyświetlić się na zielono.
Konfiguracja
- Wielkość partii: liczba elementów przetwarzanych w jednym wywołaniu AJAX (domyślnie 50, maksymalnie 250). Zmniejsz ją, jeśli Twój hosting jest wolny.
- Pobieranie zdjęć: wyłącz, aby szybko wykonać migrację testową bez zdjęć.
- Wersje robocze: importuj lub pomijaj produkty Shopify o statusie draft.
- Domyślna kategoria nadrzędna: kolekcje Shopify zostaną utworzone pod tą kategorią.
- Przewoźnik i moduł płatności: przypisywane do zaimportowanych zamówień.
- Mapowanie statusów: przypisz każdy status Shopify (pending, paid, fulfilled, delivered, cancelled, refunded) do statusu zamówienia PrestaShop.
Uruchomienie migracji
Zakładka Migracja, zachowaj kolejność:
- Zliczanie: weryfikuje połączenie i pokazuje wolumeny.
- Kolekcje custom, następnie kolekcje smart: tworzy kategorie.
- Produkty, warianty i zdjęcia: najdłuższy etap. Warianty Shopify stają się kombinacjami atrybutów, każdy wariant otrzymuje własne zdjęcie, marki są tworzone na podstawie pola vendor.
- Klienci: automatyczna deduplikacja po adresie e-mail. Przypisywane jest losowe hasło, więc zaproś klientów do skorzystania z linku „Nie pamiętam hasła”.
- Zamówienia: wyłącznie po produktach i klientach. Referencja w formacie
SH-{numer}. - Przekierowania 301: pobiera Shopify URL Redirects. Przekierowania produktów i kolekcji zostały już utworzone automatycznie na wcześniejszych etapach.
Każdy etap można bezpiecznie uruchomić ponownie: tabela odpowiedników zapobiega duplikatom. W razie przerwania wystarczy kliknąć przycisk ponownie, a migracja wznowi się w miejscu, w którym się zatrzymała.
Import opinii
Shopify nie ma natywnego API do opinii. Wyeksportuj plik CSV ze swojej aplikacji (Judge.me, Loox, Yotpo, Product Reviews app), a następnie zaimportuj go w zakładce Opinie. Moduł automatycznie wykrywa Twój backend: dfreviews (priorytetowo) albo productcomments.
Oczekiwane kolumny (bez rozróżniania wielkości liter, separator , lub ;): product_handle albo shopify_product_id albo sku, email, reviewer_name, rating, title, body, created_at, verified.
Przekierowania 301
Każde żądanie na froncie jest przechwytywane przez hook actionDispatcherBefore: jeśli żądany adres odpowiada zarejestrowanemu źródłu (na przykład /products/moj-produkt), odwiedzający jest przekierowywany kodem 301 na odpowiadający mu adres PrestaShop. Żadna konfiguracja Apache ani Nginx nie jest potrzebna. Zakładka Przekierowania 301 pozwala wyeksportować pełną listę do CSV.
Odpowiedniki i ponowne uruchomienie
Zakładka Odpowiedniki pokazuje liczbę zaimportowanych elementów według typu zasobu. Przycisk Wyczyść usuwa odpowiedniki danego typu: elementy pozostają w PrestaShop, ale kolejna migracja zaimportuje je ponownie jako nowe (możliwe duplikaty, używaj z pełną świadomością konsekwencji).
Rozwiązywanie problemów
- Błąd 429 lub 503: moduł automatycznie obsługuje limit zapytań Shopify (ponowienie z poszanowaniem nagłówka Retry-After). Żadne działanie nie jest wymagane.
- Wolna migracja: zmniejsz wielkość partii albo wyłącz pobieranie zdjęć przy pierwszym przebiegu testowym.
- Błędy w dzienniku: zakładka Dzienniki pokazuje każdy błąd wraz z zasobem i identyfikatorem Shopify, którego dotyczy. Usuń przyczynę i uruchom etap ponownie, przetworzone zostaną wyłącznie elementy z błędem.
- Ceny w historycznych zamówieniach: zamówienia są importowane jako archiwum księgowe, sumy z Shopify są zachowywane bez zmian, bez przeliczania podatków PrestaShop.
Deinstalacja
Deinstalacja usuwa 4 tabele modułu i hooki. Zaimportowane produkty, klienci, zamówienia i kategorie pozostają na miejscu. Przekierowania 301 przestają działać (są obsługiwane przez moduł).