Czy WooCommerce nadaje się do B2B?
Sporo sklepów zaczynało od sprzedaży detalicznej, a potem po cichu stało się kanałem hurtowym: kontrahenci z własnymi cenami, zamówienia na fakturę z terminem płatności, rabat dopisany do roli użytkownika. W pewnym momencie pada pytanie, czy przenieść się na Shopify Plus albo Magento. Często da się tego uniknąć, jeśli WooCommerce dostanie to, czego mu w handlu B2B brakuje.
Nazywam się Mariusz Szatkowski i od 2006 roku piszę dla WordPressa. Modernizację sklepu B2B robię sam: przeglądam kod, ustawiam ceny i integracje, testuję na stagingu. Nie mam zespołu ani podwykonawców, więc kod, który dostajesz, napisałem ja. Projekt graficzny i układ widoków, jeśli coś zmieniam w wyglądzie, dostarczasz Ty.
Zepsuty checkout po nieudanej przebudowie to temat na sprint ratunkowy WooCommerce. Sprzedaż na kilka krajów UE i rozliczenie VAT OSS opisuje przegląd gotowości WooCommerce na przepisy UE.
Jak ustawić indywidualne ceny B2B w WooCommerce
WooCommerce ma w rdzeniu cenę regularną i promocyjną. Wszystko ponad to, czyli ceny dla grup, progi ilościowe i ceny z umów ramowych, trzeba dołożyć. Wybór zależy od tego, ile różnych cenników naprawdę masz.
| Sytuacja | Wtyczka wystarczy | Potrzebny własny kod |
|---|---|---|
| Do trzech grup klientów ze stałym rabatem | tak | nie |
| Ceny z umów ramowych, inne dla każdego kontrahenta | nie | tak |
| Progi ilościowe łączone z grupami i walutami | rzadko | zwykle |
| Ceny pobierane na bieżąco z ERP | nie | tak |
| Katalog widoczny tylko dla jednego konta | częściowo | tak |
Przy cenach per kontrahent trzymam je w osobnej tabeli zasilanej z ERP. Zapis tysięcy cen w wp_postmeta spowalnia każde zapytanie o produkt, a osobna tabela z indeksem po koncie i produkcie tego problemu nie ma.
Zapytanie ofertowe zamiast ceny w koszyku
W hurcie część produktów nie ma ceny, dopóki ktoś jej nie policzy: duże ilości, wersje na zamówienie, transport paletowy. Do takich przypadków używam własnej wtyczki Quotlet z plogins.com. Dodaje przycisk dodawania produktu do zapytania, ukrywa ceny, pozwala niezalogowanym zebrać listę produktów i wysyła zapytanie do sprzedawcy e-mailem. Darmowa wersja jest w katalogu WordPress.org. Do rabatów ilościowych mam drugą wtyczkę z tej samej rodziny, Tiers.
Ukrywając ceny, zostawiam strony produktów otwarte dla wyszukiwarek. Opis, parametry i karta techniczna dalej się indeksują, a cenę widzi dopiero zalogowany kontrahent.
Integracja WooCommerce z Comarch ERP Optima i Subiektem GT
W polskich firmach handlowych najczęściej spotykam Comarch ERP Optima, Subiekta GT i Comarch ERP XL. Każdy z nich wystawia dane inaczej, więc zaczynam od sprawdzenia, jaki interfejs ma Twoja instalacja i co da się przez niego przesłać.
Zwykle synchronizuję:
- stany magazynowe, na bieżąco albo co ustalony czas,
- kontrahentów: NIP, adresy dostaw, termin płatności, limit kredytowy,
- zamówienia z numerem dokumentu i statusem realizacji,
- numery faktur nadane przez ERP.
Wywołań do ERP nie robię w trakcie składania zamówienia. Zamówienie trafia do kolejki Action Scheduler, tej samej biblioteki, przez którą WooCommerce wysyła webhooki, a WooCommerce Subscriptions pobiera płatności za odnowienia. Jeśli ERP jest wyłączony na czas przeglądu, zadania czekają i wykonują się później. Każde nieudane zadanie zostaje w logu z treścią błędu, więc wiadomo, które zamówienie trzeba sprawdzić.
KSeF: kto wystawia fakturę
Art. 106ga ustawy o VAT nakłada na podatników obowiązek wystawiania faktur ustrukturyzowanych przy użyciu Krajowego Systemu e-Faktur. Ten sam przepis wyłącza z obowiązku m.in. faktury dla osób fizycznych nieprowadzących działalności. WooCommerce nie ma połączenia z KSeF, więc fakturę wystawia Twój ERP albo program księgowy. Moja część to przekazanie mu kompletnego zamówienia: NIP nabywcy, adres, pozycje, stawki VAT i metoda płatności. Kontrahentów z innych krajów UE sprawdzam w VIES przy rejestracji konta.
Źródło: ustawa o podatku od towarów i usług, tekst jednolity Dz.U. 2026 poz. 1263.
Subskrypcje i zamówienia cykliczne
W B2B subskrypcja to częściej comiesięczna dostawa materiałów eksploatacyjnych albo roczna licencja niż dostęp premium. WooCommerce Subscriptions obsługuje dwa tryby odnowień. Przy automatycznym bramka pobiera płatność sama, a gdy płatność się nie uda, system ponawia ją według reguł, domyślnie pięć prób w ciągu tygodnia. Przy ręcznym klient dostaje zamówienie odnowienia i płaci dowolną metodą włączoną w sklepie, także przelewem.
Przelew z terminem płatności to w hurcie norma, a ponawianie płatności go nie obejmuje. Dla takich kontrahentów ustawiam przypomnienia i statusy tak, żeby zaległość trafiała do księgowości, a subskrypcja nie wygasała po pierwszym dniu zwłoki.
Akceptacja zamówień i limit kredytowy
Tych funkcji WooCommerce nie ma w rdzeniu. Gdy są potrzebne, dopisuję je:
- akceptacja zamówienia: pracownik składa koszyk, zamówienie dostaje własny status i czeka, aż osoba z uprawnieniem je zatwierdzi lub odrzuci z poziomu e-maila albo panelu,
- limit kredytowy: konto widzi dostępny limit, sklep blokuje zamówienie ponad limit, a wartość aktualizuje się z ERP po zaksięgowaniu wpłaty,
- centra kosztów: zamówienie można przypisać do oddziału lub projektu, żeby zakupy rozliczały się na właściwy budżet.
Co daje HPOS w sklepie B2B?
HPOS (High-Performance Order Storage) przenosi zamówienia z wp_posts i wp_postmeta do czterech własnych tabel: wc_orders, wc_order_addresses, wc_order_operational_data i wc_orders_meta. Od WooCommerce 8.2 z października 2023 jest domyślny dla nowych instalacji. Starsze sklepy często nadal trzymają zamówienia w tabelach wpisów, obok produktów i stron.
Przed przełączeniem sprawdzam każdą wtyczkę i własny kod. Zgodny kod pobiera zamówienie przez wc_get_order(), zmienia metadane metodami obiektu zamówienia i zapisuje przez save(), a wtyczka deklaruje zgodność przez FeaturesUtil::declare_compatibility. Bezpośrednie zapytania do wp_postmeta przepisuję. Potem włączam tryb zgodności, w którym WooCommerce synchronizuje dane między starymi a nowymi tabelami, i dopiero po sprawdzeniu, że się zgadzają, zostawiam HPOS jako główne źródło.
Czy optymalizacja bazy zastąpi zmianę platformy?
Zanim zapłacisz za migrację, warto sprawdzić bazę. W sklepach B2B najczęściej znajduję:
wp_optionsz tysiącami wpisów ładowanych przy każdym żądaniu, zostawionych przez dawno wyłączone wtyczki,- metadane zamówień po wtyczkach, których już nie ma,
- zapytania wtyczek i motywu wykonywane osobno dla każdego wariantu produktu,
- zamówienia wciąż w
wp_postmeta, bo nikt nie przełączył HPOS.
Zmianę platformy uważam za uzasadnioną, gdy potrzebujesz marketplace’u z wieloma sprzedawcami, gdy dostawca Twojego ERP oferuje certyfikowany konektor tylko dla innej platformy albo gdy test obciążeniowy na kopii sklepu pokazuje, że WooCommerce na rozsądnym serwerze nie da rady. Wtedy piszę, ile kosztuje migracja danych i co dzieje się z adresami URL.
Testy i odbiór
Każdą zmianę sprawdzam na stagingu z kopią danych pozbawioną danych osobowych:
- ścieżkę zakupu dla każdej grupy klientów, czyli czy kontrahent z grupy A widzi swoją cenę i warunki,
- zamówienie dokładnie na progu rabatu ilościowego,
- zachowanie sklepu, gdy ERP nie odpowiada,
- płatności w trybie testowym bramki, np. Przelewy24 i BLIK.
Kod trzymam w prywatnym repozytorium Git. Do każdej zmiany dostajesz pisemny opis, co zmieniłem i jak to sprawdzić. Rozmawiam mailowo i w dokumentach, więc decyzje zostają zapisane. Zanim dostanę dostęp do sklepu z danymi klientów, podpisuję umowę powierzenia przetwarzania danych zgodnie z art. 28 RODO. Faktury wystawiam jako firma z numerem VAT UE PL7393037445, umowy zawieram na prawie polskim.
Powiązane usługi
- Programista WooCommerce: bieżąca praca nad sklepem.
- Przyspieszenie WordPressa: wydajność, od której zależy stabilny checkout.
- Optymalizacja GEO i LLMO: widoczność sklepu w wyszukiwarkach AI.
Opisz sklep i to, co ma się zmienić, przez formularz kontaktowy. Odpiszę z pytaniami o zakres, a potem przyślę ofertę z założeniami.







