Planujesz sprzedaż hurtową online?Sklep B2B
← Blog
E-commerce

Sklep B2B: WooCommerce, PrestaShop czy dedykowana platforma?

Masz sklep detaliczny i chcesz sprzedawać hurtowo. Kiedy wystarczy dobudować kanał B2B, a kiedy lepiej postawić osobną platformę.

Jeśli masz działający sklep detaliczny, kanał B2B zwykle najtaniej dobudować w tej samej instalacji: osobne konta firmowe, cenniki z ERP i oddzielna ścieżka zakupowa. PrestaShop ma grupy klientów i tryb B2B w standardzie, WooCommerce wymaga wtyczek albo własnego kodu. Dedykowana platforma B2B ma sens, gdy nie prowadzisz detalu, a procesy siedzą w ERP z wieloma magazynami. Poniżej porównanie trzech dróg i lista pułapek z naszego wdrożenia B2B na WooCommerce dla hurtowni.

Czym sklep B2B różni się od zwykłego sklepu internetowego?

Hurtownik kupuje inaczej niż klient detaliczny. Zakłada konto firmowe, które ktoś musi zaakceptować, widzi swoje ceny (często netto i z indywidualnym rabatem), a czasem ma dostęp do innych produktów niż detal. Na fakturze musi być firma i NIP. Zamówienie trafia do ERP, a stany i cenniki wracają z ERP do sklepu.

Każdy z tych punktów to osobna funkcja, której zwykły sklep nie potrzebuje. Wybór platformy sprowadza się do pytania, ile z nich masz w standardzie, a ile trzeba dopisać.

WooCommerce, PrestaShop czy platforma B2B: co wybrać?

WooCommercePrestaShopDedykowana platforma B2B
Funkcje B2B w standardzieBrak, potrzebne wtyczki lub własny kodGrupy klientów, ceny i rabaty per grupa, tryb B2BTak, to jej główne zadanie
Ceny netto/brutto per klientDo dopisaniaUstawienie per grupa klientówZwykle w standardzie
Widoczność produktówDo dopisaniaWidoczność kategorii per grupaZwykle w standardzie
B2B i B2C w jednej instalacjiTak, przy własnym kodzieTak, przez grupy klientówZwykle tylko B2B
Kiedy wybraćMasz sklep na WooCommerce i chcesz dodać hurtMasz sklep na PrestaShop albo proste potrzeby B2BNie masz detalu, procesy siedzą w ERP, wiele magazynów

W praktyce decyduje to, co już masz. Migracja działającego detalu tylko po to, żeby dostać grupy klientów z PrestaShop, rzadko się opłaca. Z drugiej strony nowa hurtownia bez sprzedaży detalicznej nie potrzebuje całego bagażu sklepu B2C.

Jak zbudowaliśmy kanał B2B na WooCommerce dla hurtowni?

Hurtownia miała działający sklep detaliczny z około 1900 produktami i chciał dodać sprzedaż hurtową bez stawiania drugiego sklepu. Oto decyzje i błędy, które warto znać przed startem.

Konto B2B to status, a nie rola

Klient B2B to u nas meta użytkownika ze statusem: oczekujący, aktywny, nieaktywny. Konto oczekujące nie może się zalogować. Akceptacja odbywa się w panelu z edycją w wierszu: status, cennik (hurt1, hurt2, hurt3), rabat procentowy z datami od–do, progi i wysyłki.

Ceny z ERP przychodzą netto, sklep liczy brutto

Sklep trzyma ceny brutto z VAT 23%, a cenniki z ERP są netto, więc dla klienta B2B filtr ceny dolicza VAT. Pułapka: filtr, który w środku pobiera cenę produktu przez zwykłe get_price(), wywołuje sam siebie i wpada w rekurencję. Rozwiązanie to get_price('edit'), które zwraca surową wartość bez filtrów.

Drugi problem: cenniki z ERP miało tylko około 38 z 1904 produktów. Zamiast kazać komuś wpisywać resztę ręcznie, dla produktów bez cennika liczymy netto z ceny sklepowej.

Flaga kanału siedzi na wariancie

ERP oznacza, które pozycje idą do B2B, ale robi to na wariancie, a nie na produkcie nadrzędnym. Pierwsze, naiwne zapytanie gubiło przez to 2 z 12 produktów B2B. 2065 z 2935 pozycji nie ma flagi i zostaje w detalu.

Widoczność trzeba pilnować w czterech miejscach

  1. w zapytaniu SQL do produktów,
  2. na listach wpisów,
  3. w funkcji is_visible produktu,
  4. przy wejściu z bezpośredniego linku, które kończy się błędem 404.

Filtry nie mogą działać w panelu admina, REST API (z niego korzystają integracje), cronie, WP-CLI i ajaxie. Inaczej synchronizacja z ERP przestaje widzieć część produktów.

Checkout: firma wymuszona po stronie serwera

Pierwsza wersja blokowała pola firmy atrybutem disabled. Takie pole przeglądarka pomija przy wysyłce formularza, więc NIP w ogóle nie docierał do zamówienia. Wymuszenie danych firmy musi być w PHP. Zamówienia B2B tagujemy na hooku tworzenia zamówienia, bo hurtownicy zamawiają też przez REST, InPost Pay i ręcznie przez obsługę w panelu.

Masz ten sam problem? Masz sklep na WooCommerce albo PrestaShop i chcesz dodać hurt? Powiemy, ile z tej listy da się zrobić w Twojej instalacji. Opisz sytuację →

Jedna instalacja B2B i B2C czy dwie osobne?

Wybraliśmy jedną. Kanał hurtowy działa pod prefiksem /b2b/, z osobnymi kontami, osobnymi ciasteczkami logowania i osobną sesją WooCommerce dla każdego kanału. W dwóch kartach przeglądarki można mieć dwa niezależne koszyki. Nie trzeba było nic zmieniać w nginx ani w Cloudflare.

Wspólna instalacja oznacza jeden katalog produktów, jedną integrację z ERP i jeden panel. Kosztem jest to, że każda funkcja musi wiedzieć, w którym kanale działa:

  • wyszukiwarka segmentuje wyniki na b2b, b2c i wszystkie (u nas po klasie na body; w innym sklepie robiliśmy to polem typu oferty b2c/b2b/all na produkcie i wariancie),
  • panel retencji liczy klientów według kanału pierwszego zamówienia,
  • cache musi rozróżniać zalogowanego hurtownika od gościa.

Dwie osobne instalacje mają sens, gdy kanały mają różne katalogi, różne zespoły i niewiele wspólnego poza logo.

Jak cache i wydajność wyglądają w sklepie B2B?

Filtr cen i widoczności uruchamia się na każdej stronie, także dla gości z detalu. Po optymalizacji spadł z 38 do 6 zapytań i z 21 do 8,6 ms na gościa B2C. Pierwszy pomiar robiliśmy na ciepłym cache i wyszedł zbyt optymistycznie, więc mierz także na zimnym.

Większa wpadka dotyczyła cache. Reguła w Cloudflare używała OR zamiast AND i cache'owała strony mimo ciasteczka logowania, mimo że zalogowany hurtownik powinien dostawać stronę generowaną dla niego. Problem miał trzy warstwy: Cloudflare, konfigurację rocket-nginx i WP Rocket. Każdą trzeba było sprawdzić osobno. Szerzej o tym, jak ciasteczka wpływają na cache, piszemy w tekście o przyczynach wolnego WooCommerce.

Jak zintegrować sklep B2B z ERP?

W tej hurtowni cenniki i flagi kanału przychodzą z ERP do sklepu. W innym projekcie łączyliśmy sklep z Comarch ERP XL przez pośrednika, czyli osobny mikroserwis. Przez niego idą stany magazynowe (po kodzie EAN), dane klienta (wyszukiwanie po telefonie) i dokumenty. Z tamtego wdrożenia zostały nam trzy lekcje:

  • filtry dokumentów w pośredniku łączą się przez OR, nie AND, więc zapytanie o konkretne dokumenty zwraca więcej, niż się spodziewasz,
  • zadania przestały się przetwarzać, bo licencja pośrednika była nieaktywna od około 19 miesięcy, choć usługi pokazywały status „uruchomiona”,
  • timeout 30 s nie wynikał z kodu sklepu, tylko z konfiguracji WebService.

Integrację z ERP zaplanuj przed wyborem platformy. To ona zwykle decyduje o czasie wdrożenia, a nie wygląd sklepu.

Kiedy wybrać dedykowaną platformę B2B?

Gdy nie prowadzisz sprzedaży detalicznej, procesy (kredyt kupiecki, wiele magazynów, zatwierdzanie zamówień) żyją w ERP, a sklep ma być głównie oknem na ten system. Wtedy dobudowywanie hurtu do platformy B2C oznacza walkę z jej domyślnymi założeniami. Jeśli masz detal i chcesz dodać hurt, zacznij od kanału B2B w obecnym sklepie. Tak pracujemy w ASAPDevs przy wdrożeniach sklepu B2B.

Kamil Perzowski
Kamil Perzowski
CEO i co-founder ASAPDevs. Programuje i utrzymuje sklepy, aplikacje webowe i serwery klientów. LinkedIn · Sklep B2B
Masz ten sam problem?

Planujesz sprzedaż hurtową online?

Kamil Perzowski, ASAPDevs
Kamil Perzowski
CEO & Co-founder, ASAPDevs
Dobudowujemy kanał B2B do działających sklepów i łączymy go z ERP: konta firmowe, cenniki, widoczność produktów, zamówienia. Napisz, co sprzedajesz i z jakiego systemu korzystasz. Pilne? Zadzwoń: +48 884 220 764.

Wysyłając formularz, przekazujesz nam dane, żebyśmy mogli odpowiedzieć. Szczegóły w polityce prywatności.

FAQ

Pytania i odpowiedzi

Czy WooCommerce nadaje się na sklep B2B?

+
Tak, ale nie ma funkcji B2B w standardzie. Potrzebujesz wtyczki albo własnego kodu do kont firmowych, cenników i widoczności produktów. W zamian dostajesz jedną instalację, w której działa i detal, i hurt.

Czy PrestaShop ma wbudowany moduł B2B?

+
Ma tryb B2B w ustawieniach klientów, który dodaje do profilu firmę, numer identyfikacyjny i limit kredytu. Do tego grupy klientów z własnymi cenami, rabatami i widocznością kategorii. Rozbudowane procesy hurtowe i tak zwykle wymagają dodatkowych modułów albo integracji.

Czy hurtownik może zamawiać w tym samym sklepie co klient detaliczny?

+
Może, jeśli kanały są rozdzielone. U nas kanał B2B działa pod prefiksem /b2b/, ma osobne konta i osobne ciasteczka logowania, więc w dwóch kartach przeglądarki da się mieć dwa niezależne koszyki.

Jak pokazać klientowi B2B ceny netto, skoro sklep liczy brutto?

+
Najprościej trzymać w sklepie ceny brutto i przeliczać je filtrem dla klientów B2B. Cenniki z ERP przychodzą zwykle netto, więc filtr dolicza VAT. Uważaj na rekurencję w filtrze ceny.

Przeczytaj też