Case Study · E-commerce · Design i wyposażenie wnętrz

ShoperWooCommercemigracjaAkademiaArchitektury

Jak przenieśliśmy klientów, zamówienia, katalog i SEO, a produkcję zostawiliśmy za jasno opisanymi bramkami DNS, płatności i prawa.

Sklepy internetowe E-commerce · Design i wyposażenie wnętrz 20.08.2026 10 min czytania
Zmiana którą dostarczyliśmy
Shoper + CSV
WooCommerce + audyt
migracja danych, katalogu i wartości SEO
973/973
klientów przeniesionych
0 błędów importu
1009/1009
zamówień odtworzonych
import idempotentny, bez duplikatów
4734
aktywnych produktów dopasowanych
0 rozbieżności cen PLN względem eksportu
23/23
redirectów zweryfikowanych
301 → 200, bez pętli
01 · Brief klienta

Problem, z którym przyszedł do nas Akademia Architektury

Akademia Architektury prowadzi sklep z designerskimi meblami, oświetleniem i dodatkami wielu marek. Migracja z Shopera do WordPressa z WooCommerce miała zachować nie tylko katalog, ale również historię klientów i zamówień, ceny, marki, strukturę kategorii oraz adresy, na których przez lata budowała się widoczność sklepu.

Punktem wyjścia był ręczny eksport CSV z panelu Shopera: 973 rekordy klientów i 1009 zamówień. Katalog wymagał osobnego odtworzenia — z przypisaniem produktów do pełnego drzewa kategorii, producentów, cen w PLN i EUR, statusów „zapytaj o cenę” oraz reguł wysyłki.

Największe ryzyko nie polegało na samym utworzeniu produktów w WooCommerce. Chodziło o to, żeby po migracji nie zniknęła historia sprzedaży, nie powstały duplikaty przy wznowieniu procesu, a stare landing pages i adresy kategorii nie zamieniły się w serię błędów 404. Dlatego przygotowanie produkcji potraktowaliśmy jako osobny etap z audytem, backupem i odwracalnym planem cutoveru.

02 · Nasze podejście

Dlaczego wybraliśmy to rozwiązanie

Dobra migracja nie udaje, że ryzyko zniknęło. Pokazuje, które dane są zgodne, które założenia wymagają akceptacji i co trzeba sprawdzić przed zmianą DNS.

Zaczęliśmy od rozdzielenia źródeł prawdy według encji: eksport Shopera dla klientów i zamówień, eksport katalogu dla produktów i kategorii oraz publiczna mapa adresów dla warstwy SEO. Nie próbowaliśmy rozwiązać migracji jednym importem „wszystkiego”, bo każda z tych warstw miała inne reguły walidacji.

Import klientów i zamówień zbudowaliśmy jako proces idempotentny. Każde zamówienie zachowywało oryginalny identyfikator Shopera w metadanych `_shoper_order_id`, a przed kolejnym przebiegiem skrypt odpytywał WooCommerce i pomijał rekordy już obecne. Gdy proces został przerwany przy 781 z 1009 zamówień, można było go bezpiecznie wznowić bez tworzenia drugiej kopii historii.

Po drodze rozwiązaliśmy dwa problemy integracyjne, których nie było w samym CSV: na lokalnym połączeniu HTTP WooCommerce odrzucał Basic Auth z kluczami REST i wymagał OAuth 1.0a w query stringu, a przy imporcie wysyłki wymagał `method_id`, nie tylko nazwy metody. Oba przypadki zostały zapisane w narzędziach i dokumentacji, zamiast pozostać jednorazową poprawką w sesji.

SEO potraktowaliśmy jako część migracji danych, nie jako późniejszy copywriting. Przeanalizowaliśmy 460 historycznych adresów Shopera, dopasowaliśmy 354 do kategorii i 80 do producentów, przejęliśmy 172 bloki treści rich-text/meta i przygotowaliśmy 19 reguł `.htaccess` obejmujących 23 logiczne adresy. Każdy redirect został sprawdzony od kodu 301 do działającego celu 200.

03 · Przed i po

Co się zmieniło

✕ Przed wdrożeniem
  • Sklep działał na Shoperze, a dane do migracji były dostępne przede wszystkim jako ręczny eksport CSV.
  • Menu i struktura kategorii nie odzwierciedlały pełnego katalogu — stary motyw miał limity 8 korzeni i 12 dzieci.
  • Historyczne opisy kategorii, producenci i adresy landing pages wymagały osobnego odzyskania, żeby migracja nie wyzerowała wartości SEO.
  • Ceny, statusy zamówień, formy płatności i reguły wysyłki wymagały jawnego mapowania między platformami.
  • Przed cutoverem nie było jeszcze potwierdzonej bramki płatności, testu etykiety, delegacji DNS ani pełnej akceptacji prawnej.
✓ Po wdrożeniu
  • 973 klientów i 1009 zamówień odtworzonych w WooCommerce, z zachowaniem identyfikatorów źródłowych i możliwością bezpiecznego wznowienia.
  • 4734 aktywne produkty z przypisanymi ścieżkami, 391 termów kategorii, 2020 nowych przypisań i 4661 relacji z producentami.
  • 460 historycznych adresów przeanalizowanych, 172 bloki treści przejęte oraz 23/23 redirecty sprawdzone jako 301 → 200 bez pętli.
  • Ceny PLN zgodne z eksportem, jawne oznaczenie 321 pozycji „zapytaj o cenę” i kontrolowany fallback wysyłki zamiast niezweryfikowanej wyceny gabarytowej.
  • Staging z udokumentowanymi dowodami, backupem i runbookiem rollbacku; przepięcie domeny pozostało za wyraźnymi Owner Gates.
04 · Jak to zbudowaliśmy

Fazy projektu

01
Import klientów i zamówień
28.06–16.07.2026
Eksport CSV, mapowanie danych do WooCommerce REST API, obsługa OAuth na lokalnym HTTP, idempotencja i bezpieczne wznowienie po przerwaniu procesu.
02
Katalog, ceny, marki i SEO
lipiec 2026
Odbudowa drzewa kategorii, synchronizacja producentów, odtworzenie cen, przejęcie treści landing pages, mapa redirectów i naprawa warstwy blogowej.
03
Audyt gotowości go-live
22.07.2026
Stagingowy audyt około 50 punktów: checkout, koszyk, ceny, wysyłka, mobile, menu, wyszukiwanie, SEO, prawo i dostępność. Wynik: funkcjonalny staging, ale jeszcze bez zgody na przełączenie domeny.
04
Backup i plan cutoveru
31.07–02.08.2026
Pełny backup z manifestem SHA-256, kontrola baz i plików, wykrycie osobnej delegacji DNS subdomeny oraz przygotowanie odwracalnego runbooka.
05
Compliance i jakość treści
08–20.08.2026
Przygotowanie elektronicznej ścieżki odstąpienia, korekta komunikatu o zwrotach oraz zakończenie audytowanego sprintu opisów kategorii i produktów.

W pierwszej fazie przenieśliśmy 973 klientów oraz 1009 zamówień do WooCommerce REST API. Mapowanie obejmowało statusy, formy płatności, adresy i pozycje zamówień, a identyfikator źródłowy pozostał przy rekordzie docelowym. Końcowy wynik to 1009/1009 zamówień i 0 błędów; liczba 781 oznaczała rekordy pominięte przy wznowieniu, bo istniały już po pierwszym przebiegu.

Warstwę katalogową odbudowaliśmy na podstawie aktywnego eksportu Shopera: 4734/4734 produktów otrzymało ścieżkę kategorii, utworzono 12 brakujących termów i dodano 2020 przypisań. WooCommerce ma 391 termów `product_cat`, 4661 relacji produkt–producent, 1573 ceny PLN, 2840 cen EUR przeliczonych kursem 4,2131 oraz 321 pozycji „zapytaj o cenę”. Audyt nie wykazał rozbieżności cen PLN względem eksportu.

Nie udawaliśmy dokładności, której nie było w danych źródłowych. Aż 3783 produkty nie miały wagi, a wszystkie 4734 pozycje miały zerowe wymiary paczki w eksporcie. Dlatego checkout dostał kontrolowany fallback 35 PLN oparty na 27 historycznych zamówieniach Shopera, a live wycena gabarytowa Apaczki została odłożona do czasu uzupełnienia wiarygodnych wymiarów i testu realnej etykiety.

Audyt stagingu z 22 lipca obejmował około 50 punktów dowodowych: katalog, ceny, redirecty, menu, wyszukiwanie, koszyk, checkout, mobile, blog, strony prawne i konsolę przeglądarki. Następnie wykonaliśmy pełny backup przed cutoverem — dwa zrzuty baz, dwa archiwa plików, manifest SHA-256 i kontrolę `wp db check`. Wykryliśmy również, że subdomena `sklep.` ma osobną delegację DNS do operatora Shopera, więc zmiana rekordu wyłącznie w Hostido nie mogła przełączyć domeny publicznie.

Na końcu domknęliśmy warstwę jakości treści. 134 kategorie bezwartościowego tekstu zastąpiliśmy opisami opartymi na realnych zapytaniach GSC, produktach i markach. Następnie przepisaliśmy 1238 najcieńszych opisów produktów, ręcznie weryfikując każdy z nich pod kątem faktów. Proces wykrył i usunął trzy błędy dopisane przez model oraz dwa błędy kategoryzacji obecne w danych sklepu.

05 · Tech stack

Technologie i narzędzia

Źródło danych Shoper CSV export
Migracja WooCommerce REST API v3
Import Python + requests-oauthlib
Katalog WordPress / WP-CLI
Taksonomie i ceny PHP sync scripts
SEO .htaccess + 301 map
Wysyłka Apaczka / Alsendo
Content Google Search Console
06 · Wnioski

Czego się nauczyliśmy

01
Migracja sklepu to uzgodnienie danych, nie kopiowanie tabel. Najwięcej pracy wymagały reguły, które łatwo przeoczyć: identyfikatory źródłowe, mapowanie statusów, waluty, „zapytaj o cenę”, marki, wysyłka i historyczne adresy SEO.
02
Idempotencja jest warunkiem bezpieczeństwa długich importów. Dzięki metadanym `_shoper_order_id` przerwanie procesu nie oznaczało ręcznego szukania miejsca restartu ani ryzyka podwójnych zamówień.
03
Wartość SEO trzeba odzyskiwać w tej samej fazie co dane katalogowe. Odtworzenie 391 kategorii bez opisów, mapy adresów i redirectów pozostawiłoby sklep technicznie działający, ale biznesowo uboższy.
04
Audyt „nie gotowe do przepięcia domeny” był prawidłowym wynikiem, a nie porażką projektu. Brak danych TPay, testu etykiety Apaczki, akceptacji kursu i stawek, rozstrzygnięcia delegacji DNS oraz finalnej akceptacji prawnej został ujawniony przed zmianą produkcyjną. Dzięki temu migracja nie została pomylona z aktywacją sklepu.
05
AI przyspieszył pracę nad treścią, ale nie zastąpił kontroli faktów. Weryfikacja każdego opisu była ważniejsza niż sztuczne przekroczenie limitu znaków; część produktów pozostała krótka, gdy źródło nie zawierało wystarczających danych.
Powiązane usługi
Migracja Shoper do WooCommerce →Sklepy internetowe CyberSolus →Integracje systemów →Automatyzacja procesów biznesowych →

Chcesz podobnych wyników w swojej firmie?

Opowiedz nam o swoim procesie. Sprawdzimy, gdzie i jak możemy go usprawnić — konkretnie, z liczbami.

Porozmawiaj z nami → Sprawdź doradcę AI →