HPOS i blokowy checkout w starym sklepie WooCommerce. Plan migracji krok po kroku
Migracja starego sklepu WooCommerce na HPOS i blokowy checkout to dwa osobne projekty: HPOS przenosi zamówienia do nowych tabel w bazie, a blokowy checkout zmienia stronę koszyka i zamówienia, którą widzi klient. Oba da się przeprowadzić bez przerwy w sprzedaży, jeśli najpierw sprawdzisz wtyczki, własny kod i integracje, przetestujesz wszystko na kopii i zaplanujesz powrót. Ten wpis to plan migracji krok po kroku, dla właściciela sklepu i dla programisty.
Punkt wyjścia: co się zmienia
HPOS (High-Performance Order Storage) zapisuje zamówienia w osobnych tabelach zaprojektowanych dla sklepu, zamiast w ogólnych tabelach wpisów WordPressa. Według dokumentacji WooCommerce jest domyślny w nowych instalacjach od wersji 8.2 (październik 2023 r.). W testach WooCommerce na sklepie z około 400 tys. zamówień tworzenie zamówień było do 5 razy szybsze, a filtrowanie zamówień klienta do 40 razy.
Blokowy checkout to koszyk i formularz zamówienia zbudowane z bloków zamiast shortcode’u [woocommerce_checkout]. Od wersji 8.3 (listopad 2023 r.) jest domyślny w nowych sklepach, a zaktualizowane sklepy zostały przy klasycznym.
Stary zapis i klasyczny checkout nadal działają, a WooCommerce nie podał daty ich usunięcia. Nowe funkcje powstają jednak pod HPOS i bloki (m.in. w wydaniu 11.0 z sierpnia 2026 r.), a od wersji 10.7 WooCommerce domyślnie wyłączył synchronizację przy odczycie. Wtyczki zapisujące zamówienia „po staremu” będą z czasem działać coraz gorzej. Im dłużej sklep czeka, tym więcej kodu trzeba będzie przepisać naraz.
Etap 0: diagnoza
- WooCommerce, Ustawienia, Zaawansowane, Funkcje pokazuje, gdzie zapisywane są zamówienia, czy działa tryb zgodności i które wtyczki są niezgodne z HPOS. Dopóki taka wtyczka jest aktywna, przełączenie jest zablokowane.
- Strona zamówienia w edytorze: blok „Zamówienie” z sekcjami oznacza checkout blokowy, sam shortcode klasyczny.
- Z wiersza poleceń:
wp option get woocommerce_custom_orders_table_enabledzwracayes, jeśli HPOS jest głównym miejscem zapisu.
Etap 1: HPOS na kopii sklepu
- Kopia zapasowa i staging. Pełna kopia bazy i plików oraz osobna kopia sklepu z aktualnymi danymi.
- Wtyczki dotykające zamówień: płatności, wysyłki, faktury, eksport do księgowości, subskrypcje, programy lojalnościowe. Każda musi deklarować zgodność z HPOS. Porzucone wtyczki to najczęstsza blokada.
- Własny kod. Każde bezpośrednie zapytanie do tabel wpisów w poszukiwaniu zamówień (
wp_posts,wp_postmeta) trzeba przepisać na funkcje WooCommerce, np.wc_get_orders()i metody obiektu zamówienia. - Systemy zewnętrzne. ERP, program do faktur czy hurtownia danych nie mogą czytać bazy sklepu bezpośrednio. Przewodnik dla dużych sklepów wymienia to jako osobny punkt testów.
- Synchronizacja. Włącz tryb zgodności, żeby zamówienia zapisywały się w obu miejscach. Liczbę zamówień do przeniesienia sprawdzisz poleceniem
wp wc hpos count_unmigrated, przeniesiesz je poleceniemwp wc hpos sync, a zgodność danych porównasz poleceniemwp wc hpos verify_data. - Testy. Zamówienie każdą metodą płatności i dostawy, zwrot, korekta, anulowanie, e-maile, faktury, eksport do księgowości. Najpierw z synchronizacją, potem bez niej.
Czas przeniesienia zmierz na kopii. W teście WooCommerce sklep z 9 mln zamówień migrował około tygodnia. Mniejsze sklepy migrują znacznie szybciej, ale planowanie na oko kończy się przełączaniem w godzinach szczytu.
Etap 2: HPOS na produkcji
- Ustaw HPOS jako główne miejsce zapisu (w ustawieniach albo poleceniem
wp wc hpos enable), zostawiając synchronizację. Według dokumentacji przełączenie w obie strony nie wymaga przerwy w działaniu sklepu. - Obserwuj zamówienia, integracje i logi. Po co najmniej 6 godzinach stabilnej pracy (tyle sugeruje WooCommerce) wyłącz synchronizację przy odczycie, a potem przy zapisie.
- Stare dane zamówień usuwaj dopiero, gdy masz pewność, że nie wrócisz do starego modelu. Służy do tego polecenie
cleanupz tego samego zestawu.
Plan powrotu: dopóki działa synchronizacja, powrót do starego zapisu to zmiana ustawienia. Po wyłączeniu synchronizacji i usunięciu starych danych wraca się już z kopii zapasowej.
Etap 3: blokowy checkout, po kilku tygodniach
Nie łącz obu zmian w jednym dniu. HPOS jest niewidoczny dla klienta, checkout nie. Wdrażaj go po kilku tygodniach stabilnej pracy na HPOS i poza szczytem sprzedaży. Przed Black Friday i świętami nie ruszaj ścieżki zakupu.
- Bramki płatności. Metoda niezgodna z blokami może po prostu nie pojawić się na liście. Sprawdź osobno BLIK, szybkie przelewy, karty i płatności odroczone.
- Dostawa. Wybór paczkomatu lub punktu odbioru to często osobna wtyczka przewoźnika. Czy mapa działa w nowym formularzu i czy punkt zapisuje się w zamówieniu?
- Pola dodatkowe. Stare sposoby dodawania pól nie działają. NIP, zgodę na fakturę czy numer zamówienia klienta trzeba przenieść na API dodatkowych pól, które obsługuje pole tekstowe, listę wyboru, pole wyboru i datę. Przy sprzedaży firmom zobacz też, co zmienia się w fakturach z KSeF od 2027 r.
- Zgody i regulamin, kody rabatowe, darmowa dostawa od progu i promocje automatyczne: ceny w koszyku muszą zgadzać się z kartą produktu.
- Analityka. Zdarzenia zakupowe podpięte pod elementy starego formularza przestają się zliczać. Sprawdź je przed publikacją, inaczej stracisz dane o konwersjach.
- Wygląd i dostępność. Własne style klasycznego checkoutu się nie przeniosą. Sprawdź formularz na telefonie, z klawiatury i z czytnikiem ekranu.
Jeśli kluczowa wtyczka nie obsługuje bloków, zostań przy klasycznym checkoutcie. Powrót jest prosty: blok koszyka i checkoutu da się zamienić z powrotem na shortcode. Lepszy działający klasyczny koszyk niż nowy bez ulubionej metody płatności Twoich klientów.
Ryzyka w jednej tabeli
| Ryzyko | Objaw | Jak ograniczyć |
|---|---|---|
| Wtyczka niezgodna z HPOS | Nie da się włączyć HPOS albo zamówienia mają puste pola | Aktualizacja, zamiennik albo przepisanie funkcji przed migracją |
| Integracja czyta bazę bezpośrednio | Zamówienia nie trafiają do ERP lub księgowości | Przepięcie na API WooCommerce i test na kopii |
| Bramka bez obsługi bloków | Metoda płatności znika z checkoutu | Aktualizacja wtyczki albo klasyczny checkout |
| Brak pól dodatkowych | Brak NIP-u w zamówieniu | Przeniesienie pól na API dodatkowych pól |
| Zerwana analityka | Spadek konwersji w raportach, choć sprzedaż się nie zmieniła | Test zdarzeń przed publikacją |
Migracja to dobry moment, żeby przy okazji sprawdzić szybkość reakcji sklepu na kliknięcia i uporządkować wtyczki. Jeśli chcesz, żebyśmy przygotowali plan migracji Twojego sklepu, podaj nam jego adres i najważniejsze integracje.