# Migracja z WooCommerce do PrestaShop: kompletny przewodnik

> Wprowadzenie Migracja WooCommerce (dfmigratewoocommerce) przenosi kompletny sklep WooCommerce do PrestaShop 8 lub 9: kategorie, tagi, atrybuty globalne, produkty proste i wariantowe (wariacje zamieniane na kombinacje), zdjęcia, własne metadane, klientów z…

- Strona: <https://www.datafirefly.com/pl/documentation/dfmigratewoocommerce/>
- Język: pl
- Zaktualizowano: 2026-07-31
- Inne języki: [fr](https://www.datafirefly.com/documentation/dfmigratewoocommerce/index.md), [en](https://www.datafirefly.com/en/documentation/dfmigratewoocommerce/index.md), [es](https://www.datafirefly.com/es/documentation/dfmigratewoocommerce/index.md), [de](https://www.datafirefly.com/de/documentation/dfmigratewoocommerce/index.md), [it](https://www.datafirefly.com/it/documentation/dfmigratewoocommerce/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfmigratewoocommerce/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfmigratewoocommerce/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

## Wprowadzenie

Migracja WooCommerce (`dfmigratewoocommerce`) przenosi kompletny sklep WooCommerce do PrestaShop 8 lub 9: kategorie, tagi, atrybuty globalne, produkty proste i wariantowe (wariacje zamieniane na kombinacje), zdjęcia, własne metadane, klientów z adresami oraz zamówienia. Moduł łączy się bezpośrednio z bazą MySQL WordPressa, pracuje partiami przez AJAX bez ryzyka przekroczenia limitu czasu i przechowuje w bazie mapowanie Woo do PS, dzięki czemu każdy etap można uruchomić ponownie bez tworzenia duplikatów.

Źródłowa baza WooCommerce jest wyłącznie **odczytywana**, nigdy modyfikowana. Wszystkie zapisy odbywają się po stronie PrestaShop.

## Instalacja

1. W panelu administracyjnym PrestaShop otwórz **Moduły > Menedżer modułów > Wgraj moduł** i wskaż archiwum `dfmigratewoocommerce.zip`.
2. Moduł tworzy trzy tabele techniczne: `df_woomig_mapping` (odpowiedniki Woo i PS), `df_woomig_log` (dziennik) oraz `df_woomig_progress` (postęp etapów).
3. Kliknij **Konfiguruj**, aby otworzyć interfejs migracji.

## Połączenie z WooCommerce

W zakładce **Połączenie** uzupełnij:

- **Host i port**: serwer MySQL bazy WordPressa (domyślnie port 3306),
- **Baza, użytkownik, hasło**: dane dostępowe do bazy WordPressa,
- **Prefiks tabel**: zwykle `wp_`, sprawdź w pliku `wp-config.php` (zmienna $table_prefix),
- **Adres URL witryny**: publiczny adres sklepu WooCommerce, używany do pobierania zdjęć w trybie HTTP, albo ścieżka w systemie plików w trybie lokalnym.

Kliknij **Testuj połączenie**: moduł wyświetli liczbę produktów, kategorii, tagów, atrybutów globalnych, klientów i zamówień wykrytych w źródle.

Jeśli Twój hosting blokuje zdalne połączenia MySQL, zaimportuj zrzut bazy WordPressa do osobnego schematu na serwerze PrestaShop (na przykład `wp_source`) i podłącz moduł do tego schematu przez `localhost`. Tunel SSH również się sprawdzi.

## Ustawienia

- **Język domyślny**: język PrestaShop, w którym zapisywane będą jednojęzyczne treści z Woo,
- **Domyślna grupa podatkowa**: stosowana do wszystkich przeniesionych produktów, ceny z Woo są kopiowane bez zmian do ceny netto w PrestaShop,
- **Atrybuty jako cechy**: włącza podwójne mapowanie (każdy atrybut globalny staje się także cechą widoczną przy produktach prostych) oraz przeniesienie własnych pól postmeta do cech `meta:*`,
- **Rozmiar partii**: liczba obiektów przetwarzanych w jednym żądaniu AJAX (domyślnie 25, zmniejsz na wolnym hostingu współdzielonym),
- **Tryb zdjęć**: `http` (pobieranie z adresu witryny) albo `local` (adres witryny traktowany jest jako ścieżka w systemie plików zawierająca `wp-content/uploads`),
- **Tryb próbny**: symulacja, wszystko trafia do dziennika, nic nie jest zapisywane,
- **Domyślny przewoźnik**: przypisywany przeniesionym zamówieniom.

## Uruchomienie migracji

W zakładce **Migracja** wykonuj etapy **po kolei**, ponieważ każdy opiera się na mapowaniu utworzonym przez poprzednie:

1. **Atrybuty**: każdy globalny atrybut Woo (`pa_*`) staje się grupą atrybutów PS (grupy kolorów są wykrywane), a przy włączonej opcji także cechą. Wszystkie wartości są tworzone po obu stronach.
2. **Kategorie**: odtwarzane jest całe drzewo, brakujące kategorie nadrzędne są rozwiązywane rekurencyjnie, a osierocone podpinane do korzenia z ostrzeżeniem.
3. **Tagi**: deduplikowane po nazwie.
4. **Produkty**: produkty proste i wariantowe, czyli ceny, ceny przekreślone (SpecificPrice), SKU, waga, wymiary, stan magazynowy, status, produkt wirtualny, powiązania z kategoriami i tagami, cechy oraz własne metadane. Wariacje stają się kombinacjami z własnym wpływem na cenę, stanem magazynowym i referencją. Zdjęcia produktu są przenoszone od razu.
5. **Zdjęcia**: etap nadrabiający zaległości, przechodzi po już przeniesionych produktach i importuje brakujące zdjęcia (główne oraz galerię), regenerując wszystkie miniatury.
6. **Klienci**: konta wraz z adresami rozliczeniowymi i dostawy. Hasła są generowane od nowa w bcrypt, więc przy pierwszym logowaniu klienci korzystają z opcji odzyskiwania hasła. Adresy e-mail istniejące już w PrestaShop są ponownie wykorzystywane, nigdy duplikowane.
7. **Zamówienia**: automatyczne wykrycie trybu HPOS (WooCommerce 8 i nowsze, tabele `wc_orders`) albo starszego (`wp_posts`). Pozycje, sumy, waluta i statusy są mapowane na stany PrestaShop. Żaden e-mail nie jest wysyłany.

Każdy etap pokazuje pasek postępu na żywo i można go przerwać, a następnie wznowić: praca podejmowana jest dokładnie w miejscu zatrzymania.

Wykonaj najpierw pełne przejście w **trybie próbnym**, aby zweryfikować zakres w dzienniku, a dopiero potem wyłącz tryb próbny i uruchom migrację ponownie.

## Mapowanie i ponowne uruchomienia

Zakładka **Mapowanie** pokazuje liczbę odpowiedników w podziale na typy obiektów. Każdy obiekt obecny w mapowaniu jest pomijany przy ponownym uruchomieniu, więc możesz powtórzyć cały etap bez tworzenia duplikatów. Przycisk resetu czyści mapowanie wybranego typu albo całość, a obiekty utworzone już po stronie PrestaShop pozostają nietknięte.

## Dziennik

Zakładka **Dziennik** wypisuje zdarzenia według etapu i poziomu (informacja, sukces, ostrzeżenie, błąd): utworzone produkty, wariacje pominięte z braku atrybutu globalnego, nieznalezione zdjęcia, zamówienia bez klienta i tak dalej. Czyszczenie jednym kliknięciem.

## Po migracji

- Uruchom ponowne indeksowanie wyszukiwarki: **Ustawienia sklepu > Wyszukiwanie > Indeksuj wszystkie produkty**,
- Sprawdź próbkę cen, jeśli Twój sklep Woo przechowywał ceny brutto (PrestaShop oczekuje cen netto),
- Zweryfikuj grupę podatkową, przewoźników i metody płatności,
- Usuń konfigurację połączenia albo odinstaluj moduł, ponieważ dane dostępowe MySQL są zapisane w konfiguracji PrestaShop.

## Znane ograniczenia

- Atrybuty **lokalne** (zdefiniowane na pojedynczym produkcie, bez prefiksu `pa_*`) użyte w wariacjach nie mogą stać się kombinacjami, ponieważ PrestaShop wymaga atrybutów globalnych. Takie wariacje są pomijane i odnotowywane w dzienniku. W razie potrzeby zamień je po stronie Woo na atrybuty globalne przed migracją.
- Zamówienia są przenoszone jako historia: podatki nie są przeliczane, sumy z Woo kopiowane są bez zmian.
- Kupony, opinie o produktach i subskrypcje nie są przenoszone w tej wersji.

## Rozwiązywanie problemów

### „Błąd połączenia” przy teście

Sprawdź, czy użytkownik MySQL ma prawo łączyć się z adresu IP serwera PrestaShop (`GRANT ... ON baza.* TO 'user'@'ip'`) i czy port 3306 jest otwarty. W przeciwnym razie skorzystaj z lokalnego zrzutu bazy albo tunelu SSH.

### Brak zdjęć w trybie HTTP

Witryna WooCommerce musi być dostępna po HTTP lub HTTPS z serwera PrestaShop. Jeśli źródłowa witryna jest już wyłączona, użyj trybu `local`: skopiuj katalog `wp-content/uploads` na serwer PrestaShop i podaj jego ścieżkę w polu adresu witryny.

### Brak wariacji przy produkcie

Zajrzyj do dziennika: jeśli wariacje korzystały z atrybutów lokalnych zamiast globalnych, są pomijane zgodnie z założeniem. Produkt nadrzędny zostaje przeniesiony wraz z danymi podstawowymi.
