Tworzymy moduły EU VAT i B2B dla PrestaShop oraz prowadzimy własne sklepy w UE, dlatego ścieżki w panelu administracyjnym opisane poniżej to te, z których korzystamy na co dzień. Wszelkie kwestie podatkowe i regulacyjne traktuj jako ogólne wskazówki, a szczegóły potwierdź ze swoją księgowością.

Oto pułapka, w którą wpada większość sprzedawców korzystających z PrestaShop przy B2B: zakładają, że to funkcja, którą wystarczy włączyć. Nie wystarczy. B2B to inny model klienta działający w tym samym sklepie, ktoś, kto kupuje kartonami, rozlicza się z faktury 30 dni później, oczekuje cen bez VAT i podaje numer zamówienia zakupu otrzymany z działu księgowości. Nie ma w tym nic egzotycznego; tak po prostu od dawna wygląda handel między firmami. PrestaShop potrafi dobrze go obsłużyć, ale platforma została zaprojektowana przede wszystkim z myślą o B2C, a elementy B2B są rozproszone po kilku ekranach ustawień oraz po obszarach, których rdzeń systemu po prostu nie obsługuje.

B2C vs B2B w PrestaShop: co naprawdę się zmienia

Zanim zaczniesz konfigurację, warto zobaczyć oba typy klientów obok siebie. Ten sam katalog, ten sam proces składania zamówienia, ten sam panel administracyjny, ale prawie każde założenie się odwraca:

ObszarB2C (domyślne PrestaShop)B2BGdzie to skonfigurować
Wyświetlanie cenZ podatkiem (brutto)Bez podatku (netto). VAT można odliczyć, więc decyzje cenowe opierają się na kwocie nettoUstawienie grupy klientów + przełącznik na froncie sklepu
Model cenowyJedna cena dla wszystkichProgi zależne od wolumenu, często negocjowane dla konkretnego kontaCeny specyficzne + grupy klientów
PłatnośćKarta / portfel przy składaniu zamówieniaPłatność na fakturę, terminy 30/60/90 dni, limit kredytowyModuł płatności odroczonych (rdzeń tego nie ma)
Podatki w sprzedaży transgranicznejNaliczane według kraju dostawyStawka 0% dla ważnych numerów VAT UE (odwrotne obciążenie)Weryfikacja VIES + zwolnienie podatkowe
DostępNatychmiast po rejestracjiPo weryfikacji, najpierw potwierdzasz, że to rzeczywiście firmaProces akceptacji konta handlowego
Rytm zamówieńZakupy jednorazoweZamówienia powtarzalne, minimalne ilości, szybkie ponowienie zamówieniaProgi ilościowe + ponowienie z historii zamówień

Co to oznacza w praktyce? Nie musisz przebudowywać sklepu. Musisz dodać drugi tryb działania, który funkcjonuje obok B2C, oparty prawie w całości na systemie grup klientów PrestaShop, a następnie uzupełnić kilka luk pozostawionych przez rdzeń. Błąd, który kosztuje sprzedawców najwięcej, polega na doklejaniu sprzedaży hurtowej do sklepu B2C po fakcie, jedno globalne ustawienie tu, ręczne nadpisanie ceny tam, aż oba tryby zaczynają sobie przeczyć. Jeśli zaprojektujesz strukturę świadomie, pozostanie przejrzysta.

Krok pierwszy: włącz wbudowany tryb B2B w PrestaShop

Przejdź do Parametry sklepu → Ustawienia klienta (w wersji 1.6 znajduje się to w Klienci → Ustawienia) i włącz Włącz tryb B2B. To jeden przełącznik, który robi mniej, niż sugeruje jego nazwa, ale jest właściwym punktem wyjścia. Po włączeniu tryb B2B ujawnia dodatkowe pola firmowe, takie jak SIRET, APE, strona internetowa oraz dozwolona kwota zadłużenia (indywidualny limit kredytowy klienta, który inne funkcje mogą odczytać). Pole firma/adres może już istnieć w zależności od formularza, wersji i motywu, tryb B2B przede wszystkim dodaje do tego pola typowe dla konta firmowego.

Warto jasno rozumieć, co ten przełącznik robi, a czego nie robi. Udostępnia pola i liczbę limitu kredytowego; nie wymusza żadnych reguł, nie weryfikuje numeru VAT, nie zmienia ani jednej ceny i nie ogranicza dostępu. To pasywne miejsca na dane, które czekają na logikę zbudowaną wokół nich. Włącz go, a wszystko poniżej potraktuj jako właściwą konfigurację B2B.

Grupy klientów: kręgosłup całej konfiguracji

Jeśli masz wynieść z tego poradnika jedną myśl architektoniczną, niech będzie taka: w PrestaShop B2B to problem grup. Wyświetlanie podatku, poziom rabatu, to, czy ceny w ogóle są widoczne, które metody płatności się pojawiają. Większość tych decyzji można podejmować na poziomie grupy klientów (dostęp do przewoźników nie jest natywnym ustawieniem grupy; zależnie od konfiguracji wymaga ustawień przewoźnika albo modułu). Zbuduj grupy poprawnie, a reszta konfiguracji B2B naturalnie się na nich oprze.

Utwórz grupy w Parametry sklepu → Ustawienia klienta → Grupy. Trzy ustawienia istotne dla B2B to Metoda wyświetlania cen (dla grup handlowych ustaw Bez podatku), Rabat (płaski procent dla całej grupy, choć progi per produkt zwykle sprawdzają się lepiej) oraz Pokaż ceny (wyłącz, aby całkowicie ukryć ceny przed daną grupą, przydatne dla grupy gości, których chcesz skierować do rejestracji). Klient może należeć do kilku grup, z jedną ustawioną jako domyślna, która steruje cenami.

Grupy są na tyle rozbudowane, że zasługują na osobne omówienie. Jak je warstwować, jak rozstrzygany jest priorytet cen, gdy klient należy do dwóch grup, i jak przypisywać klientów automatycznie zamiast ręcznie. Wszystko to opisujemy szczegółowo w grupy klientów w PrestaShop: pokazywanie różnych cen różnym klientom. Na poziomie tego przewodnika zasada jest prosta: jedna grupa handlowa na każdy poziom cenowy, nigdy na pojedynczego klienta.

Netto vs brutto: problem wyświetlania cen

To najbardziej widoczna różnica między B2C i B2B, a zarazem ta, która generuje najwięcej zgłoszeń typu „dlaczego faktura nie zgadza się ze stroną?”. Klienci B2B myślą cenami netto, ponieważ odliczają VAT; klienci B2C muszą widzieć kwotę brutto, którą faktycznie zapłacą. Metoda wyświetlania cen w grupie klientów obsługuje to per grupa, ale zostaje luka w doświadczeniu użytkownika: klient handlowy widzi ceny brutto, dopóki się nie zaloguje, bez żadnego sygnału, że liczby się zmienią.

Rozwiązaniem jest przełącznik sposobu wyświetlania podatku na froncie sklepu, dzięki któremu ceny netto są widoczne przed logowaniem, oraz konfiguracja, która sprawia, że przełączanie oparte na grupach działa przewidywalnie. Pełny opis, w tym sposób, w jaki PrestaShop oblicza wyświetlaną cenę i gdzie umieścić przełącznik w motywie, znajdziesz w ceny netto vs ceny brutto: przełączanie wyświetlania podatku dla klientów B2B.

Sprzedaż transgraniczna w UE: stawka 0% przy ważnym numerze VAT

Strona konfiguracji EU VAT Checker z włączoną walidacją AJAX na żywo, czasem cache 24 godziny, regułą niedostępności VIES ustawioną na akceptację numeru i ponowne sprawdzenie później, wyłączonym wymogiem NIP, włączonymi danymi firmy z VIES i wyłączonym przypisaniem do grupy
Strona ustawień pokazuje włączoną walidację na żywo, 24-godzinny cache, regułę VIES ustawioną na akceptację i ponowne sprawdzenie, włączone dane firmy z VIES oraz wyłączone przypisywanie zweryfikowanych klientów do grupy.

Jeśli sprzedajesz firmie zarejestrowanej jako podatnik VAT w innym kraju UE, co do zasady sprzedaż powinna być objęta stawką 0% w ramach mechanizmu odwrotnego obciążenia, po potwierdzeniu jej numeru VAT w VIES. Robione ręcznie jest to powolne i podatne na błędy: pobrać numer, sprawdzić go, ręcznie oznaczyć konto jako zwolnione z podatku, liczyć, że nie było literówki. Przy realnej skali taki proces się załamuje, a błędna decyzja w tym miejscu to problem zgodności, nie kosmetyka.

Właściwą odpowiedzią jest automatyczna weryfikacja przez API VIES podczas rejestracji lub składania zamówienia, z zastosowaniem statusu zwolnienia podatkowego na koncie, gdy numer jest ważny. Dokładnie ten obszar opisuje weryfikator VAT UE: automatyzacja zwolnienia podatkowego dla klientów firmowych, i warto mieć go gotowego od pierwszego dnia, bo dopasowywanie go później do sklepu pełnego historycznych zamówień opodatkowanych nieprawidłowo jest znacznie bardziej bolesne. (Nasz Automatic EU VAT Checker to moduł zbudowany właśnie do tego kroku.)

Terminy płatności: luka, której PrestaShop sam nie wypełni

To największa różnica strukturalna i ta, której rdzeń naprawdę nie potrafi obsłużyć. PrestaShop zakłada płatność podczas składania zamówienia. W B2B standardem są towary teraz, płatność za 30, 60, czasem 90 dni, względem limitu kredytowego i faktury z terminem płatności. Nie ma natywnej opcji „płatność na fakturę”, która śledzi zaległe salda, najbliżej rdzeń dochodzi do pola dozwolona kwota zadłużenia z trybu B2B, które zasila raport Klienci → Zadłużenie, dostępny tylko do odczytu, ale nie egzekwuje limitu kredytowego.

Zamknięcie tej luki wymaga prawdziwego systemu płatności odroczonych: metody „Płatność na fakturę” widocznej tylko dla zatwierdzonych klientów handlowych, limitów kredytowych per klient lub per grupa, faktur z terminami płatności oraz śledzenia sald. Pełną mechanikę, jak ograniczyć dostęp do metody płatności, jak egzekwować limity, jak obsługiwać płatności częściowe, opisujemy w odroczone terminy płatności: jak pozwolić klientom firmowym płacić na fakturę, a moduł, który to realizuje, to nasz B2B Deferred Payment Terms. To funkcja, która najczyściej oddziela prawdziwą konfigurację B2B od obejścia.

Weryfikacja klientów handlowych przed przyznaniem dostępu

Nigdy nie przyznawaj cen hurtowych i terminów płatności w chwili, gdy ktoś się zarejestruje. Sednem B2B jest kwalifikowana relacja: czy to faktycznie firma, czy numer VAT jest prawdziwy, czy to klient, któremu chcesz udzielić kredytu kupieckiego? Natychmiastowy dostęp handlowy to prosta droga do sprzedaży z marżą hurtową konsumentowi, który znalazł formularz rejestracyjny.

Czysty wzorzec to rozszerzony formularz zgłoszeniowy, konto utworzone w grupie oczekujące bez specjalnych cen, ręczna weryfikacja i dopiero potem przeniesienie do właściwej grupy handlowej. Proces akceptacji, obsługę statusu oczekiwania i etapowe wiadomości e-mail informujące zgłaszających opisujemy w wnioski o konto handlowe: weryfikacja klientów firmowych przed przyznaniem dostępu. Zasada na poziomie przewodnika: rejestracja tworzy kandydata, nie klienta handlowego.

Ceny progowe i minimalne ilości

Ceny B2B rzadko są płaskie, im więcej klient kupuje, tym niższa cena jednostkowa. PrestaShop obsługuje to natywnie przez ceny specyficzne z progami ilościowymi: edytuj produkt, otwórz kartę Ceny, a następnie dodaj Cenę specyficzną. Co istotne, cenę specyficzną możesz ograniczyć do jednej grupy klientów, dzięki czemu rabaty ilościowe pojawią się tylko dla kupujących hurtowo i nigdy nie naruszą ceny detalicznej.

Minimalne ilości zamówienia działają obok tego. Ustaw minimalną ilość per produkt (lub kombinację), aby klient hurtowy nie mógł zamówić jednej sztuki produktu, który wysyłasz wyłącznie kartonami. Takie zamówienie często kosztuje więcej w kompletacji i pakowaniu, niż przynosi. Dla minimum na poziomie całego koszyka potrzebna będzie mała reguła albo moduł, ponieważ rdzeń zapewnia minimum per produkt.

Tryb katalogu w wydaniu B2B

Niektórzy hurtownicy w ogóle nie chcą publicznie pokazywać cen. Albo dlatego, że cennik jest poufny, albo dlatego, że rejestracja ma być warunkiem wejścia. Globalny tryb katalogu w PrestaShop (w Parametry sklepu → Ustawienia produktów) ukrywa ceny i przycisk zakupu przed wszystkimi, co jest zbyt toporne dla sklepu hybrydowego: zabija także sprzedaż B2C.

Zrób to per grupa. Wyłącz Pokaż ceny dla grupy gości/odwiedzających i włącz dla grup B2C oraz handlowych. Goście przeglądają katalog, ale są zachęcani do rejestracji lub logowania, aby zobaczyć ceny; zatwierdzeni klienci widzą właściwe kwoty dla swojego poziomu. Ten sam sklep, dwa doświadczenia, dziesięć minut konfiguracji i żadnego zbyt topornego ustawienia globalnego.

Czysta struktura hybrydowa B2C + B2B

Większość sprzedawców PrestaShop prowadzących B2B nie jest czystymi hurtownikami, obsługują klientów detalicznych i handlowych z jednego sklepu. Oto układ grup, który nie pozwala tym dwóm trybom wchodzić sobie w drogę:

  • Grupa domyślna (goście + nowe rejestracje): ceny z podatkiem, standardowa płatność kartą. Twoja warstwa B2C, bez zmian.
  • Grupa handlowa (zatwierdzona): ceny bez podatku, rabaty ilościowe, włączona płatność na fakturę, szybkie ponowienie zamówienia z historii zamówień.
  • Grupa handlowa UE: jak grupa handlowa, ale z numerem VAT zweryfikowanym i statusem zwolnienia podatkowego zastosowanym automatycznie.
  • Oczekująca grupa handlowa: przypisana, ale jeszcze niezatwierdzona. Klient może się zalogować i przeglądać sklep, ale widzi ceny detaliczne i tylko standardowe płatności.

Zaletą tej struktury jest izolacja: doświadczenie B2C pozostaje całkowicie nienaruszone przez konfigurację B2B, ponieważ każde zachowanie B2B jest przypięte do grupy, do której klient B2C nigdy nie trafia. Jeden katalog, jeden panel administracyjny, dwa wyraźnie oddzielone tryby.

Co skonfigurować i w jakiej kolejności

Startując ze standardowego sklepu, warto iść w takiej kolejności, aby uniknąć poprawek:

Większość tego to konfiguracja, nie własne programowanie. PrestaShop ma szkielet dla B2B, trzeba go tylko świadomie złożyć. Kroki 4, 5 i 6 to miejsca, w których kończy się rdzeń, a zaczynają moduły dedykowane; jeśli wolisz zacząć od spójnego zestawu zamiast podłączać te elementy pojedynczo, moduły stojące za powyższymi poradnikami korzystają ze wspólnej konfiguracji, dzięki czemu grupa handlowa, zwolnienie z VAT i warunki fakturowania zgadzają się ze sobą zamiast ze sobą walczyć. Tak czy inaczej, kluczowa jest kolejność: najpierw poprawnie ustaw strukturę grup, a każda kolejna decyzja B2B będzie miała czyste miejsce do podpięcia.

Najczęściej zadawane pytania

Czy włączenie trybu B2B sprawia, że mój sklep PrestaShop jest zgodny z przepisami VAT?

Nie. Tryb B2B dodaje tylko kilka pól firmowych (SIRET, APE, dozwolona kwota zadłużenia, maksymalna liczba dni płatności) do rekordu klienta. Nie weryfikuje numerów VAT, nie stosuje odwrotnego obciążenia, nie oblicza terminów płatności i nie zmienia ceny. Zgodność wynika z tego, jak skonfigurujesz reguły podatkowe, wyświetlanie dla grup, weryfikację VAT oraz faktury, i ostatecznie spoczywa na Tobie oraz Twojej księgowości, a nie na jednym przełączniku czy module.

Czy mogę prowadzić B2C i B2B z jednego sklepu PrestaShop, czy potrzebuję dwóch instalacji?

Jeden sklep spokojnie obsłuży oba modele, ponieważ każde zachowanie B2B jest przypięte do grupy klientów, do której kupujący detaliczny nigdy nie trafia. Zostaw grupy Odwiedzający/Gość/Klient z wyświetlaniem cen z podatkiem i standardowym procesem składania zamówienia, a dodaj grupy handlowe z cenami bez podatku, cenami ilościowymi i płatnością na fakturę. Jeśli konkretnie chcesz, aby kupujący B2B byli na osobnej domenie z cenami netto od pierwszego kliknięcia, alternatywą jest natywny multisklep (Zaawansowane → Multisklep), ale większość sprzedawców go nie potrzebuje.

Dlaczego klient handlowy nadal widzi ceny z VAT, choć ustawiłem dla grupy ceny bez podatku?

Prawie zawsze dlatego, że wyświetlanie cen podąża za domyślną grupą klienta, a nie za dowolną grupą, do której należy. Jeśli jego grupą domyślną nadal jest Klient/detaliczna, zobaczy ceny brutto, mimo że jest także w grupie handlowej. Ustaw grupę handlową jako domyślną w Klienci → Klienci → Edytuj, a potem zaloguj się na konto testowe, aby to potwierdzić.

Czy PrestaShop blokuje zamówienie, gdy klient przekroczy limit kredytowy?

Nie sam z siebie. Pole dozwolona kwota zadłużenia zasila wyłącznie raport tylko do odczytu Klienci → Zadłużenie; rdzeń nigdy nie zatrzymuje zamówienia, które przekracza limit kupującego. Egzekwowanie limitu (blokada albo wstrzymanie do akceptacji), terminy płatności, wiekowanie należności i przypomnienia wymagają modułu płatności odroczonych, takiego jak nasz B2B Deferred Payment Terms.

Czy muszę weryfikować numery VAT, czy mogę po prostu ufać temu, co wpisze klient?

Według stanu na 2026 rok ważny numer VAT jest materialnym warunkiem zastosowania stawki 0% dla wewnątrzwspólnotowej dostawy, a od Ciebie oczekuje się możliwości wykazania, że został sprawdzony w momencie sprzedaży, zwykle w VIES, unijnej usłudze weryfikacji VAT. Rdzeń PrestaShop nie odpytuje VIES, więc albo sprawdzasz ręcznie (co się nie skaluje i zostawia co najwyżej zrzut ekranu), albo automatyzujesz ten proces. Potwierdź własne obowiązki z księgowością; stronę techniczną obsługuje nasz Automatic EU VAT Checker.

David Miller

David Miller

Założyciel, mypresta.rocks
O autorze

David Miller to specjalista PrestaShop z ponad dekadą praktycznego doświadczenia i założyciel mypresta.rocks, studia programistycznego z miasta Tychy. Tworzy i utrzymuje katalog 159 modułów PrestaShop, w tym 21 pakietów „Revolution" obejmujących SEO, checkout, bezpieczeństwo, wydajność, marketing, wyszukiwanie, wsparcie i operacje magazynowe, które każdego dnia usprawniają realne sklepy, testowanych na PrestaShop 1.7.8, 8.x i 9.x. Sprawuje również opiekę nad sklepami produkcyjnymi, dlatego jego pracę ocenia się po realnej sprzedaży, a nie po wersjach demo. Jego doświadczenie obejmuje pełen zakres e-commerce, wydajność, bezpieczeństwo, SEO i marketing, oraz wykracza poza PrestaShop, sięgając WooCommerce, Shopify i systemów tworzonych na zamówienie. Na blogu pisze o technicznej stronie PrestaShop: co platforma naprawdę robi pod maską, co psuje się na produkcji i które rozwiązania faktycznie się sprawdzają.

Udostępnij ten wpis:

Komentarze

Brak komentarzy. Bądź pierwszy!

Spodobał Ci się ten artykuł?

Otrzymuj nasze najnowsze porady, przewodniki i aktualizacje modułów prosto na swoją skrzynkę.

Możesz zrezygnować w każdej chwili. Dane kontaktowe znajdziesz w naszej nocie prawnej.

Ładowanie...
Do góry