HPOS i blokowy checkout w starym sklepie WooCommerce. Plan migracji krok po kroku

Właścicielka sklepu internetowego przygotowuje zamówienia do wysyłki przy laptopie

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_enabled zwraca yes, jeśli HPOS jest głównym miejscem zapisu.

Etap 1: HPOS na kopii sklepu

  1. Kopia zapasowa i staging. Pełna kopia bazy i plików oraz osobna kopia sklepu z aktualnymi danymi.
  2. 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.
  3. 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.
  4. 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.
  5. 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 poleceniem wp wc hpos sync, a zgodność danych porównasz poleceniem wp wc hpos verify_data.
  6. 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

  1. 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.
  2. 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.
  3. Stare dane zamówień usuwaj dopiero, gdy masz pewność, że nie wrócisz do starego modelu. Służy do tego polecenie cleanup z 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.