Rozszerzenie, które działało w starszym WooCommerce, może wymagać zmian po przejściu na High-Performance Order Storage (HPOS) lub koszyk i checkout oparte na blokach. To dwa niezależne obszary zgodności: pierwszy dotyczy zapisu i odczytu zamówień, drugi — interfejsu zakupowego i komunikacji ze Store API.
Czym jest HPOS w WooCommerce?
High-Performance Order Storage przechowuje dane zamówień w dedykowanych tabelach WooCommerce zamiast polegać wyłącznie na tradycyjnych tabelach wpisów WordPress. Nowe instalacje WooCommerce od wersji 8.2 korzystają domyślnie z HPOS; starsze sklepy mogły zachować wcześniejszy sposób przechowywania zamówień. Nie zmieniaj tego ustawienia wyłącznie na podstawie wieku sklepu — sprawdź bieżącą konfigurację w WooCommerce → Ustawienia → Zaawansowane → Funkcje.
Wtyczka może działać źle z HPOS, jeśli odczytuje zamówienia przez bezpośrednie zapytania do wp_posts i wp_postmeta lub zapisuje dane z pominięciem oficjalnych API WooCommerce. Zgodne implementacje zazwyczaj korzystają z mechanizmów wc_get_order(), wc_get_orders() i metod obiektów zamówienia.
Co oznacza zgodność wtyczki z HPOS?
Nie wystarczy oznaczenie w panelu rozszerzenia. Prawidłowe działanie trzeba sprawdzić w operacjach: utworzenie zamówienia, aktualizacja metadanych, zmiana statusu, zwrot, anulowanie, raportowanie, synchronizacja oraz odczyt zamówień przez integracje. Szczególnej uwagi wymagają narzędzia księgowe, ERP, CRM i magazynowe.
Przed zmianą magazynu danych WooCommerce sprawdź listę rozszerzeń oznaczonych jako niezgodne. Dokumentacja WooCommerce opisuje tryb synchronizacji danych pomiędzy starszym i nowym sposobem zapisu. Przełączenie wykonuj dopiero po zakończeniu synchronizacji oraz teście odczytu i zapisu zamówień. Dokumentacja HPOS WooCommerce.
Bloki Cart i Checkout to osobny problem
Nowy koszyk i zamówienie mogą korzystać z bloków WordPressa, podczas gdy wcześniejsze wdrożenia używały klasycznych shortcode’ów i . Te interfejsy różnią się mechanizmami rozszerzania. Nie wszystkie klasyczne hooki PHP używane do modyfikowania checkoutu wpływają w ten sam sposób na bloki.
Przykład: wtyczka dodająca własny komunikat, pole formularza lub regułę rabatu w klasycznym checkoutcie może nie wyświetlać tego elementu w Checkout Block. Obsługa procesu zakupowego z użyciem Store API może wymagać od autora osobnej integracji.
Jak sprawdzić, jaki checkout ma sklep?
- W panelu WordPress otwórz stronę przypisaną do koszyka lub zamówienia w ustawieniach WooCommerce.
- Sprawdź, czy treść strony składa się z bloku WooCommerce Cart/Checkout, czy ze starszego shortcode’u.
- Zapisz, jakie wtyczki wpływają na pola adresowe, płatności, kupony, dostawę, dopłaty i aktualizację koszyka.
- Zweryfikuj w dokumentacji każdego rozszerzenia obsługę konkretnego wariantu checkoutu — deklaracja zgodności nie zastępuje testu.
Lista testów przed uruchomieniem HPOS lub Checkout Blocks
- Koszyk: proste i wariantowe produkty, aktualizacja ilości, usunięcie pozycji.
- Promocje: kupony procentowe i kwotowe, darmowa dostawa, wykluczenia, progi koszyka.
- Dostawa: strefy, metody, punkty odbioru, zmiana kosztu po zmianie adresu.
- Płatności: dostępność bramek, poprawne zakończenie płatności, błędy i ponowne próby.
- Zamówienia: utworzenie, zapis metadanych, e-maile, zmiany statusu i zwroty.
- Integracje: wystawianie dokumentów, rezerwacja stanów magazynowych, webhooki i synchronizacja.
- Użytkownik: gość oraz zalogowany klient, telefon i komputer, wymagane zgody.
Do testów użyj środowiska stagingowego i danych demonstracyjnych. Jeżeli kopiujesz bazę sklepu, zadbaj o to, aby staging nie wysyłał e-maili i nie uruchamiał realnych płatności, integracji ani webhooków.
Wskazówki dla twórców wtyczek WooCommerce
Deweloper powinien unikać bezpośredniej manipulacji tabelami zamówień i wykorzystywać interfejsy WooCommerce CRUD. Deklarację zgodności z HPOS i Cart/Checkout Blocks należy wprowadzać dopiero po przeprowadzeniu rzeczywistych testów. W przypadku bloków ważne są mechanizmy rozszerzalności oraz Store API. Testy powinny uwzględniać brak zgodności — np. różne formaty danych, integrację z bramką płatności i walidację po stronie serwera.
Oficjalna dokumentacja deweloperska: HPOS oraz rozszerzanie Cart i Checkout Blocks.
Jeśli dodatkowo przekazujesz zamówienia do systemu fakturowego, przetestuj odczyt danych HPOS, zmianę statusu i obsługę ponownych prób synchronizacji. Konkretne przykłady opisuje poradnik integracji WooCommerce z Comarch Betterfly przez API.
FAQ
Czy wtyczka zgodna z HPOS automatycznie działa z Checkout Blocks?
Nie. To osobne deklaracje i osobne zestawy testów.
Czy można zachować klasyczny koszyk i checkout?
W wielu wdrożeniach tak. Wybór wariantu powinien wynikać z potrzeb sklepu i zgodności używanych rozszerzeń, a nie tylko z wyglądu edytora.
Czy włączenie HPOS automatycznie naprawia wydajność sklepu?
Nie. HPOS optymalizuje określone operacje na danych zamówień, ale nie usuwa problemów z ciężkim JavaScriptem, źle napisanymi zapytaniami, cache czy infrastrukturą.
Przed zmianami skorzystaj z checklisty testowania wtyczek i poradnika diagnozowania konfliktów WooCommerce. Jeśli wybierasz dopiero rozszerzenie do sklepu, sprawdź na co zwracać uwagę przy wyborze wtyczki.
