Ostatnio zweryfikowano w czerwcu 2026 r. Tworzymy moduły EU VAT i B2B dla PrestaShop oraz prowadzimy własne sklepy w UE; ścieżki w panelu administracyjnym i klucze konfiguracji poniżej są aktualne dla PrestaShop 1.6/1.7/8/9. Kwestie podatkowe i regulacyjne mają charakter ogólny, traktuj je jako zależne od daty i potwierdź ze swoim księgowym, który razem z Tobą odpowiada za zgodność z przepisami.

Sprzedaż firmom w PrestaShop to nie jest „B2C z polem na nazwę firmy”. Klienci biznesowi oczekują cen bez podatku, oczekują, że prawidłowy numer VAT automatycznie usunie ten podatek, i oczekują płatności 30 albo 60 dni po dostawie towaru, a nie przy kasie. PrestaShop ma elementy potrzebne do wszystkich trzech scenariuszy, tryb B2B, grupy klientów, grupy reguł podatkowych i pola limitu należności, ale znajdują się one na czterech różnych ekranach i domyślnie nie są ze sobą połączone. Ten poradnik jest schematem połączeń: dokładnie które ustawienia zaplecza zmieniają „tryb B2B włączony” w sklep, który pokazuje ceny netto, stosuje odwrotne obciążenie wobec właściwych klientów i pozwala zatwierdzonym kontom kupować z odroczoną płatnością.

Skupimy się ściśle na mechanice specyficznej dla B2B. Szersze zagadnienia unijnego VAT (progi OSS/IOSS, stawki sprzedaży wysyłkowej), zasady prawne pokazywania cen netto i brutto, PDF faktury oraz obowiązki e-fakturowania mają własną głębię, linkujemy do nich w odpowiednich miejscach zamiast tłumaczyć je tu pobieżnie, aby każdy temat był omówiony w pełni bez zamieniania tej strony w podręcznik podatkowy.

Co faktycznie zmienia „tryb B2B”, a czego nie zmienia

Przejdź do Parametry sklepu → Ustawienia klientów i ustaw Włącz tryb B2B na Tak (klucz konfiguracji to PS_B2B_ENABLE). Odruchowo można spodziewać się innego sklepu. Nie dostajesz go. Dostajesz dodatkowe pola w rekordzie klienta, na froncie sklepu nic się nie zmieni, dopóki nie wykonasz pozostałych kroków opisanych niżej.

Pola, które tryb B2B odblokowuje przy każdym kliencie (w Klienci → Klienci → Edytuj), to:

  • Firma oraz SIRET / APE (francuskie numery rejestracyjne i kody działalności, dla innych krajów zmień etykietę albo je zignoruj; sam numer VAT znajduje się w adresie klienta, w polu Numer VAT, a nie tutaj)
  • Dozwolona kwota zaległości, limit kredytowy dla zamówień z płatnością na konto
  • Maksymalna liczba dni płatności, Twoja wartość net-30 / net-60
  • Ocena ryzyka, flaga informacyjna (brak / niskie / średnie / wysokie), a nie reguła egzekwowania

I co z tego? To są pola do przechowywania danych. Rdzeń PrestaShop zapisuje „maksymalną liczbę dni płatności” i „dozwoloną kwotę zaległości” w rekordzie, ale prawie nic z nimi nie robi, nigdy nie blokuje zamówienia, nigdy nie wylicza terminu płatności, nigdy nie wysyła przypomnienia. Jedyną rzeczą, którą napędza pole limitu zaległości, jest tylko do odczytu raport zaplecza Klienci → Zaległości, który pokazuje dozwoloną kwotę każdego klienta B2B obok jego bieżącego salda; nie powstrzymuje kupującego przed złożeniem zamówienia ponad ten limit. Wiedza o tym, które pola działają aktywnie, a które są tylko notatkami, chroni przed założeniem, że platforma pilnuje kredytu kupieckiego, choć tego nie robi. Automatyzacja kredytu i terminów płatności to luka, którą zamykamy w kroku 5.

Jeśli chcesz sprawdzić, co dokładnie czyta ten raport, zanim mu zaufasz, poniższe zapytanie tylko do odczytu wypisuje skonfigurowany limit każdego klienta B2B obok wartości jego obecnie nieopłaconych (ważnych, jeszcze nieopłaconych) zamówień. Uruchamiaj je na kopii zapasowej albo replice do odczytu, nigdy nie zapisuj ręcznie w tych tabelach:

-- Read-only: B2B customers, their credit ceiling, and current open balance.
-- Adjust the ps_ table prefix and the "paid" logic to your install/version.
SELECT
    c.id_customer,
    CONCAT(c.firstname, ' ', c.lastname) AS customer,
    c.company,
    c.outstanding_allow_amount        AS allowed_amount,
    COALESCE(SUM(o.total_paid_real), 0) AS paid_to_date,
    COALESCE(SUM(o.total_paid_tax_incl), 0) AS ordered_total
FROM ps_customer c
LEFT JOIN ps_orders o
       ON o.id_customer = c.id_customer
      AND o.valid = 1
WHERE c.outstanding_allow_amount > 0
GROUP BY c.id_customer
ORDER BY allowed_amount DESC;

Daje to surowe liczby, ale właśnie takie, surowe. Zapytanie nie wie, co jest przeterminowane, czym jest termin płatności ani co zrobiła płatność częściowa. Zamiana tych kolumn w rzeczywisty obraz należności to zadanie kroku 5, a nie widoku SQL.

Krok 1: Zbuduj grupy klientów wokół sposobu opodatkowania, a nie „wielkości”

Najczęstszy błąd B2B w PrestaShop to jedna grupa o nazwie „B2B”. To nie może działać, ponieważ grupa steruje zarówno wyświetlaniem cen, jak i tym, które reguły podatkowe mają zastosowanie, a firma krajowa (VAT naliczany), firma z UE (odwrotne obciążenie, 0%) i firma spoza UE (eksport, 0%) potrzebują trzech różnych rezultatów podatkowych. Zamodeluj grupy według scenariusza podatkowego w Klienci → Grupy:

GrupaMetoda wyświetlania cenRezultat podatkowyKto tu należy
B2B krajoweBez podatkuStandardowy krajowy VAT, pokazany jako osobna liniaFirmy z Twojego kraju
B2B UE (VAT zweryfikowany)Bez podatku0%, odwrotne obciążenieFirmy z UE z numerem VAT potwierdzonym w VIES
B2B spoza UEBez podatku0%, eksportFirmy spoza unijnego obszaru VAT
B2B hurtBez podatkuTak jak jeden z powyższych + głębsze cenyKonta o dużym wolumenie na negocjowanych stawkach

Dla każdej grupy B2B ustaw Metodę wyświetlania cen na Bez podatku. To jedno ustawienie sprawia, że zalogowany kupujący widzi ceny netto na listach produktów, stronach produktów, w koszyku i przy kasie, z VAT rozbitym na osobną linię na końcu. Tak klienci biznesowi oczekują czytać cenę, a przy okazji znika wahanie „czy to z podatkiem, czy bez?” w trakcie zakupu.

Faktyczna obniżka dla każdej grupy (stały rabat grupowy albo Ceny Specjalne dla produktów) to warstwa cenowa na wierzchu, omawiamy ją w kroku 6. Najpierw grupa, potem ceny.

Krok 2: Utwórz grupy reguł podatkowych, a potem przypnij je według grup klientów

Podatki w PrestaShop przechodzą przez Międzynarodowy → Podatki → Reguły podatkowe. Grupa reguł podatkowych mapuje kraje na stawki podatku; następnie przypisujesz grupę reguł podatkowych do każdego produktu (zakładka Ceny produktu). Zauważ, że rdzeń PrestaShop nie ma ogólnego przełącznika zwolnienia podatkowego dla grupy klientów: podatek jest wyliczany z grupy reguł podatkowych produktu względem adresu/kraju dostawy, a nie przez przełączenie flagi „bez podatku” na grupie klientów. Usunięcie VAT dla zweryfikowanych firm z UE i spoza UE wymaga więc modułu walidacji VAT/zwolnienia podatkowego, własnej logiki podatkowej albo konfiguracji reguł podatkowych na poziomie adresów i produktów, nie natywnego ustawienia grupy. Dla trzech scenariuszy B2B potrzebujesz co najmniej:

  1. Normalnej grupy reguł Standardowy VAT (standardowa stawka każdego kraju), używanej przez B2C oraz przez B2B krajowe.
  2. Grupy reguł 0% / odwrotne obciążenie, która nie nalicza podatku dla odpowiednich krajów dostawy, połączonej z Metoda wyświetlania cen = Bez podatku w grupie. Pamiętaj, że przełączenie wyświetlania cen na bez podatku zmienia tylko sposób, w jaki ceny są pokazywane; nie usuwa obowiązku podatkowego. Faktyczne zastosowanie stawki zerowej wobec zweryfikowanych kupujących z UE i eksportowych wymaga modułu walidacji VAT/zwolnienia podatkowego albo własnej logiki podatkowej, która przypisze właściwe traktowanie reguł podatkowych, a nie flagi grupy.

Nie ma natywnej dźwigni „zwolnij tę grupę”, więc najczystszym podejściem jest moduł, który jednocześnie przenosi zweryfikowanych kupujących do właściwej grupy i stosuje odpowiednie zwolnienie podatkowe / odwrotne obciążenie do ich zamówień: grupy B2B UE (VAT zweryfikowany) i B2B spoza UE kończą bez VAT, a B2B krajowe zachowuje standardowe stawki. Samo przeniesienie kupującego między grupami zmienia tylko wyświetlanie cen i rabaty, nie zmienia zobowiązania podatkowego. Dlatego gdy walidacja VIES przenosi kupującego do grupy UE (krok 3), VAT spada do zera tylko wtedy, gdy moduł stosuje też logikę stawki zerowej/odwrotnego obciążenia, a nie wyłącznie zmianę grupy.

Pełna mechanika stawek UE, grup reguł podatkowych, zaokrągleń EBC i schematu OSS to osobny temat. Jeśli Twoje reguły podatkowe nie są jeszcze skonfigurowane, zacznij od reguł VAT UE w konfiguracji podatków PrestaShop; jeśli sprzedajesz transgranicznie zarówno konsumentom, jak i firmom, OSS, IOSS i to, co musi obsłużyć Twój sklep omawia progi i stronę rejestracyjną, których ten poradnik celowo nie powtarza, w tym ogólnounijny próg sprzedaży wysyłkowej €10,000, który obowiązuje w transgranicznej sprzedaży B2C od 1 lipca 2021 r.

Krok 3: Zweryfikuj numery VAT w VIES, zanim zastosujesz stawkę zerową

Strona konfiguracji EU VAT Checker z włączoną walidacją AJAX na żywo, 24-godzinną pamięcią podręczną, ustawieniem „zaakceptuj numer i sprawdź ponownie później” przy niedostępnym VIES oraz wyłączonym przypisywaniem zweryfikowanych klientów do grupy
Strona konfiguracji pokazuje włączoną walidację AJAX na żywo, 24-godzinną pamięć podręczną, opcję „zaakceptuj numer i sprawdź ponownie później” przy niedostępnym VIES, wyświetlane dane firmy z VIES oraz wyłączone przypisywanie do grupy.

Odwrotne obciążenie nie oznacza „ufamy, że klient wpisał prawdziwy numer”. Prawidłowy numer VAT jest materialnym warunkiem zwolnienia wewnątrzwspólnotowego, więc zanim zastosujesz stawkę zerową do dostawy, powinieneś zweryfikować numer VAT kupującego i zachować dowód, najczęściej przez sprawdzenie go w VIES (unijnym systemie wymiany informacji o VAT), który jest praktyczną metodą dowodową akceptowaną przez organy podatkowe, oraz móc wykazać, że sprawdzenie wykonano w momencie sprzedaży. Rdzeń PrestaShop nie odpytuje VIES (wbudowane pole numeru VAT jest co najwyżej wskazówką formatu, a nie sprawdzeniem na żywo). Domyślny sklep B2B albo zeruje VAT w ciemno (Twoja odpowiedzialność, jeśli numer jest zły), albo każe komuś ręcznie wklejać numery do strony VIES, co się nie skaluje i nie zostawia ścieżki audytu.

Ręczna weryfikacja przegrywa w trzech punktach: blokuje przetwarzanie zamówień, tworzy zrzut ekranu zamiast rekordu ze znacznikiem czasu akceptowanego przez audytora i nigdy nie wykrywa rejestracji, która była ważna przy zakładaniu konta, ale później została dezaktywowana. Rozwiązaniem jest walidacja w ścieżce finalizacji zakupu. Nasz Automatic EU VAT Checker odpytuje usługę VIES w czasie rzeczywistym w chwili, gdy kupujący wpisuje numer, oraz, to jest kluczowe, wykonuje za Ciebie zmianę grupy:

  • Prawidłowy numer: klient zostaje przeniesiony do Twojej grupy B2B UE, podatek przelicza się do 0%, a odpowiedź VIES (znacznik czasu, numer konsultacji) zostaje zapisana przy rekordzie jako Twój dowód audytowy.
  • Nieprawidłowy numer: standardowy VAT pozostaje naliczony; kupujący może poprawić numer albo kontynuować z pełnym VAT.
  • VIES niedostępny (usługa ma zaplanowaną przerwę): wybierasz zachowanie awaryjne, zastosować standardowy VAT jako bezpieczną wartość domyślną albo przyjąć zamówienie do ponownej walidacji.

I co z tego? Rekord walidacji jest sednem sprawy. Gdy organ podatkowy zapyta, dlaczego faktura #4012 miała 0% VAT, przedstawiasz zapisaną dla tego zamówienia potwierdzoną odpowiedź VIES, zamiast liczyć, że numer klienta nadal będzie ważny dwa lata później. Sprawdzaj format numeru przed wywołaniem API (każde państwo członkowskie ma własny wzorzec, DE to 9 cyfr, FR to dwa znaki plus 9 cyfr, NL kończy się na B + dwie cyfry), aby oczywiście błędne numery nie zużywały zapytań do VIES.

Jedna pułapka warta zaznaczenia: od 1 stycznia 2021 r. Wielka Brytania nie jest w unijnym obszarze VAT. Sprzedaż firmom z Wielkiej Brytanii jest eksportem, a nie dostawą wewnątrzwspólnotową; numery GB weryfikuje się przez usługę HMRC, nie VIES, a unijne odwrotne obciążenie nie ma zastosowania, z wyjątkiem przemieszczeń towarów w Irlandii Północnej, gdzie Irlandia Północna zachowuje specjalne unijne traktowanie VAT dla towarów i używa numerów VAT XI, które można weryfikować w VIES i gdzie reguły wewnątrzwspólnotowe mogą nadal mieć zastosowanie.

Krok 4: Pokaż ceny netto kupującym, którzy jeszcze się nie zalogowali

Wyświetlanie netto oparte na grupie rozwiązuje cenę dla zalogowanego klienta biznesowego. Nie robi nic dla kupującego, który trafia na stronę produktu bez logowania. Do momentu zalogowania PrestaShop renderuje ceny przy użyciu grupy domyślnej (zwykle „Odwiedzający”), która zawiera podatek, więc pierwsze wrażenie kupującego hurtowego to konsumenckie ceny brutto. Dla hybrydowego sklepu B2C/B2B to zgrzyt na starcie. Są trzy sposoby obsługi:

  • Przełącznik netto/brutto na froncie, aby każdy odwiedzający mógł przełączyć cały katalog na ceny bez podatku bez konta, najlżejsza opcja dla sklepu obsługującego obie grupy odbiorców.
  • Dedykowany sklep B2B przez natywny multistore PrestaShop (Parametry zaawansowane → Multistore), z grupą domyślną tego sklepu ustawioną na grupę B2B bez podatku, kupujący biznesowi dostają ceny netto od pierwszego kliknięcia na osobnej domenie.
  • Ceny za logowaniem: całkowicie ukryj ceny dla gości i pokaż „Zaloguj się, aby zobaczyć ceny”, co chroni stawki handlowe przed konkurencją i wymusza akceptację konta. Ustawia się to przez motyw oraz uprawnienia dostępu grup do kategorii.

To, jaki sposób wyświetlania jest wymagany prawnie, kiedy musisz pokazywać brutto, kiedy wolno pokazywać netto i kiedy obowiązuje cena jednostkowa, jest osobnym pytaniem od tego, jak połączyć to w PrestaShop. Zasady opisuje artykuł o zasadach prezentacji cen w Europie: netto, brutto i ceny jednostkowe. Krótka wersja dla B2B: pokazywanie netto zweryfikowanym kupującym biznesowym jest w porządku; pokazywanie wyłącznie netto konsumentom nie jest.

Krok 5: Zamień „maksymalną liczbę dni płatności” w realne odroczone terminy płatności

To tutaj historia B2B w PrestaShop jest najcieńsza i tutaj większość konfiguracji po cichu się sypie. Natywny tryb B2B przechowuje dozwoloną kwotę zaległości i maksymalną liczbę dni płatności dla klienta oraz pokazuje dozwoloną kwotę obok bieżącego salda każdego kupującego w raporcie tylko do odczytu Klienci → Zaległości. To cały wbudowany zestaw funkcji, i pamiętaj, że raport jest informacyjny: rdzeń faktycznie nie blokuje zamówienia, które przekracza limit kupującego. Nie ma egzekwowania limitu, wyliczania terminu płatności, raportu przeterminowań, przypomnień ani rejestrowania płatności per faktura. Sklep działający na natywnym trybie B2B w praktyce prowadzi należności w arkuszu kalkulacyjnym.

Czego rzeczywiście potrzebuje działający proces płatności odroczonych:

  • Złożenia zamówienia bez płatności dla zatwierdzonych kont (opcja płatności offline/na konto, ograniczona do grup B2B)
  • Terminu płatności na fakturze wyliczonego z daty zamówienia + uzgodnionych warunków
  • Egzekwowania limitu kredytowego z wybranym zachowaniem (zablokować zamówienie albo zatrzymać do akceptacji), gdy kupujący osiąga limit
  • Panelu sald należności: kto ile jest winien, co jest przeterminowane, co wkrótce będzie wymagalne
  • Automatycznych przypomnień w terminie płatności oraz po 7 / 30 dniach opóźnienia
  • Obsługi not kredytowych, która odnosi się do pierwotnej faktury i zmniejsza saldo należności po częściowym zwrocie

Nasz moduł B2B Deferred Payment Terms wypełnia dokładnie tę lukę: konfigurowalne terminy per grupa (net 7/14/30/60/90), automatyczne daty płatności, egzekwowanie limitu kredytowego z wyborem blokuj albo zatwierdzaj, panel salda należności w back office z raportem wiekowania (bieżące / 30 / 60 / 90+), e-maile przypominające według ustawionego harmonogramu i rejestrowanie płatności wobec konkretnych faktur. I co z tego? Praca z należnościami, którą natywny tryb B2B po cichu zostawia na Twoim biurku, zostaje wykonana przez sklep zamiast ręcznie.

Nie każda operacja B2B chce otwartego kredytu kupieckiego. Dwa wzorce o niższym ryzyku dobrze działają w PrestaShop i nie wymagają żadnej ekspozycji kredytowej:

  • Proces proforma: kupujący składa zamówienie, wystawiasz proformę, płaci przelewem bankowym, wysyłasz po otrzymaniu płatności. Profesjonalnie i bez ryzyka kredytowego.
  • Płatność podzielona: zaliczka przy zamówieniu, reszta przy dostawie, częste dla towarów na zamówienie albo o dużej wartości.

Jeden warunek prawny do wpięcia w Twoje terminy: według stanu na 2026 r. kilka państw UE ogranicza okresy płatności B2B. Belgia ogranicza terminy B2B do 60 dni; Francja ogranicza je do 60 dni od daty faktury (albo 45 dni od końca miesiąca). Oferowanie „net 90” kupującemu z Belgii może narazić Cię na naruszenie, ustaw maksymalny limit per grupa odpowiednio i potwierdź aktualny pułap z księgowym przed opublikowaniem warunków.

Krok 6: Ceny progowe i progi ilościowe per grupa

Cennik B2B rzadko oznacza jedną cenę katalogową. Narzędziem są Ceny Specjalne w zakładce Ceny każdego produktu: cena stała, rabat procentowy albo stała obniżka, opcjonalnie ograniczone do grupy klientów i progu ilościowego. Właśnie to ostatnie połączenie umożliwia ceny wolumenowe. Ten sam produkt ma inne ceny jednostkowe dla B2B krajowego i B2B hurtowego, a cena spada wraz ze wzrostem ilości:

IlośćB2B krajoweB2B hurt
1–9€90 (10% rabatu)€75 (25% rabatu)
10–49€85 (15% rabatu)€70 (30% rabatu)
50–99€80 (20% rabatu)€65 (35% rabatu)
100+€75 (25% rabatu)€60 (40% rabatu)

Dla reguł na poziomie zamówienia, darmowa wysyłka powyżej wartości, hurtowy bonus za pierwsze zamówienie, minimalna ilość zamówienia, użyj Katalog → Rabaty (Reguły koszyka) ograniczonych do odpowiedniej grupy. Egzekwowanie minimalnego zamówienia i widoczność produktów ograniczona do grup (przez uprawnienia dostępu grup do kategorii) dopełniają katalog hurtowy, którego publiczność nie widzi i z którego nie może kupować poniżej minimum.

Krok 7: Akceptacja konta, nie zostawiaj sklepu B2B otwartego

Sklep handlowy zwykle nie powinien automatycznie aktywować każdej rejestracji. Praktyczne dźwignie w PrestaShop:

  • Akceptacja przed aktywacją: twórz konta w stanie wstrzymanym, sprawdź firmę i numer VAT, a potem aktywuj. Flagę walidacji e-maila z rdzenia można wykorzystać do lekkiej wersji; dedykowany obieg akceptacji jest czystszy przy większej skali.
  • Ukryj ceny przed gośćmi (opcja cen za logowaniem z kroku 4), aby ceny handlowe nie były publiczne.
  • Katalog ograniczony do grup: uprawnienia Dostępu kategorii per grupa utrzymują określone zakresy widoczne tylko dla zatwierdzonych grup B2B.

Szersze „jakich kroków przy nowym koncie i zgodach oczekuje od Ciebie prawo” znajdziesz w poradniku prawnym e-commerce w UE dla właścicieli sklepów, ta sekcja dotyczy tylko mechaniki dostępu B2B, a nie pełnego obrazu zgodności.

Faktura B2B: czego odwrotne obciążenie faktycznie wymaga na papierze

Usunięcie VAT to połowa pracy; faktura musi powiedzieć, dlaczego został usunięty. Dla wewnątrzwspólnotowej dostawy towarów podstawą prawną jest art. 138 Dyrektywy VAT UE (2006/112/WE). Towary są zwolnione, a kupujący rozlicza VAT od nabycia w swoim kraju. (Art. 196 dotyczy odwrotnego obciążenia dla niektórych transgranicznych usług, więc sformułowanie „odwrotne obciążenie art. 196” zostaw dla tych przypadków usługowych, nie dla towarów.) Faktura za wewnątrzwspólnotową dostawę towarów B2B musi:

  • nie naliczać VAT, oznacz dostawę jako zwolnioną/wewnątrzwspólnotową ze stawką zerową, a nie jako zwykłą linię ze stawką 0%;
  • pokazywać numery VAT zarówno sprzedawcy, jak i kupującego;
  • zawierać informację o zwolnieniu z podstawą prawną, np. „Wewnątrzwspólnotowa dostawa zwolniona z VAT, art. 138 Dyrektywy 2006/112/WE. VAT rozlicza nabywca.”

Kupujący następnie deklaruje VAT jako należny i naliczony w swoim kraju (zwykle neutralnie dla siebie), a Ty wykazujesz dostawę w informacji podsumowującej EC Sales List (Zusammenfassende Meldung w Niemczech, DES we Francji). PrestaShop nie ma pola wyboru „odwrotne obciążenie”, informację trzeba dodać do szablonu faktury i pokazywać warunkowo, gdy kupujący jest w Twojej grupie B2B UE. Zrobienie tego w PDF oraz spełnienie wymagań układu dla poszczególnych krajów to osobna praca przy szablonie faktury: zobacz dostosowanie faktur PrestaShop: szablony PDF i wymagania prawne. Sekwencyjna numeracja bez luk, której kilka organów podatkowych wymaga na takich fakturach, jest omówiona w dostosowywaniu numerów faktur i zamówień.

Tam, gdzie państwo członkowskie przeszło na obowiązkowe strukturalne e-fakturowanie, włoska FatturaPA, polski KSeF wdrażany w 2026 r., dostosowany PDF już nie wystarcza; trzeba wygenerować i przesłać wymagany XML. Które kraje tego wymagają i jak spełnić obowiązek, opisuje artykuł o e-fakturowaniu w Europie.

Raportowanie i przechowywanie dokumentacji, których nie możesz pominąć

Dwa obowiązki wynikają bezpośrednio ze sprzedaży B2B z odwrotnym obciążeniem, a PrestaShop nie generuje żadnego z nich natywnie:

  • EC Sales List (ESL): w każdym okresie raportowym wykazujesz każdą firmę z UE, której dostarczałeś towar, jej numer VAT i wartość. Eksportuj zamówienia odfiltrowane po grupie B2B UE, zasilaj dane zamówień do programu księgowego (DATEV, Sage) albo przekaż eksport księgowemu.
  • Intrastat: po przekroczeniu krajowych progów dla przemieszczeń towarów wewnątrz UE składasz kody towarowe, masy i wartości. Eksport zamówień z PrestaShop jest materiałem źródłowym; złożenie deklaracji to zadanie księgowe.

Co do retencji: przechowuj wystawione PDF-y faktur, rekordy walidacji VIES, dowody wysyłki dla dostaw wewnątrzwspólnotowych oraz historię zmian numerów VAT przez okres wymagany w danym państwie członkowskim (często 7–10 lat; w Niemczech 10). Dane znajdują się w bazie, trzymaj też kopie zapasowe offline.

Strona zwrotów ma własne niuanse przy transgranicznym B2B, noty kredytowe odwracające dostawę z odwrotnym obciążeniem oraz pytanie, przepisy którego kraju mają zastosowanie. To opisujemy w artykule o zwrotach transgranicznych, a nie tutaj.

Sekwencja konfiguracji, po kolei

  1. Włącz tryb B2B (Parametry sklepu → Ustawienia klientów).
  2. Utwórz grupy podatkowe: B2B krajowe, B2B UE, B2B spoza UE, hurt, wszystkie ustawione na Bez podatku.
  3. Zbuduj grupy reguł podatkowych / zwolnienia grup: standardowe stawki krajowe, 0% dla zweryfikowanych w UE i eksportu.
  4. Zainstaluj walidację VIES, aby prawidłowy numer automatycznie przenosił kupującego do grupy B2B UE i zapisywał dowód, Automatic EU VAT Checker.
  5. Rozwiąż wyświetlanie netto dla gości: przełącznik, multistore albo ceny za logowaniem.
  6. Podłącz realne terminy płatności: daty wymagalności, egzekwowanie limitu, przypomnienia, wiekowanie, B2B Deferred Payment Terms.
  7. Dostosuj fakturę: informacja o odwrotnym obciążeniu, oba numery VAT, pola krajów, dostosowanie faktury.
  8. Ustaw Ceny Specjalne i progi ilościowe per grupa; dodaj reguły koszyka dla ofert na poziomie zamówienia.
  9. Skonfiguruj akceptację konta i widoczność ograniczoną do grup.
  10. Przetestuj każdy scenariusz od początku do końca: krajowe B2B, wewnątrzwspólnotowe z prawidłowym numerem, wewnątrzwspólnotowe z nieprawidłowym numerem, eksport poza UE oraz zamówienie przekraczające limit kredytowy.
  11. Poinformuj księgowego o formacie faktury i eksporcie ESL.

Najczęstsze błędy, które widzimy

  • Stawka zerowa bez VIES. Jeśli numer okaże się nieprawidłowy, zalegasz z VAT, zweryfikuj go i zachowaj dowód, zanim usuniesz podatek.
  • Walidacja bez zapisu dowodu. Zapisana odpowiedź VIES ze znacznikiem czasu i numerem konsultacji jest tym, co akceptuje audytor; zrzut ekranu nie wystarczy.
  • Jedna grupa „B2B” do wszystkiego. Sprzedaż krajowa, wewnątrzwspólnotowa i eksport wymagają trzech rezultatów podatkowych; jedna grupa może wyrazić tylko jeden.
  • Traktowanie Wielkiej Brytanii jak UE. Po Brexicie to eksport; numery GB przechodzą przez HMRC, nie VIES.
  • Ignorowanie limitów terminów płatności. „Net 90” może naruszać belgijskie albo francuskie limity, ustaw maksimum per grupa na prawny pułap.
  • Testowanie tylko back office. Awaria prawie zawsze jest na froncie: zaloguj się jako kupujący B2B i przejdź cały proces, ceny netto, walidację numeru VAT, 0% przy kasie, informację o odwrotnym obciążeniu na PDF.

Zrobienie tego bez składania po kawałku

Walidacja VAT, wyświetlanie netto/brutto i odroczone terminy płatności to trzy moduły, których prawdziwy sklep B2B w PrestaShop potrzebuje działających razem, dokładnie w sekwencji opisanej powyżej. Jeśli wolisz nie pozyskiwać ich osobno, nasz B2B Essentials Pack łączy je w pakiet, zbudowany pod ten przebieg konfiguracji, z każdym modułem zaprojektowanym tak, aby przekazywał pracę następnemu.

B2B w PrestaShop nie jest tyle skomplikowane, ile szczegółowe: każdy krok (utworzyć grupę, ustawić regułę, zweryfikować numer, ustawić termin) jest prosty sam w sobie, a praca leży w interakcjach i prawnych krawędziach 27 państw członkowskich. Ustaw konfigurację poprawnie raz, a sklep będzie wykonywał ją za Ciebie, właściwy kupujący zobaczy właściwą cenę netto, zweryfikowana firma z UE dostanie 0% ze zgodną fakturą, a zatwierdzone konto kupi na termin, bez ponownego podejmowania tych decyzji przy każdym zamówieniu. Właśnie ta automatyzacja sprawia, że kanał online ma w B2B jakikolwiek sens.

Często zadawane pytania

Czy PrestaShop domyślnie weryfikuje numery VAT w VIES?

Nie. Natywne pole numeru VAT w adresie klienta jest co najwyżej wskazówką formatu, rdzeń PrestaShop nigdy nie odpytuje usługi VIES. Walidacja w czasie rzeczywistym, rekord konsultacji ze znacznikiem czasu i automatyczne przeniesienie do unijnej grupy zwolnionej z podatku pochodzą z modułu takiego jak nasz Automatic EU VAT Checker. To, czy musisz walidować i jaki dowód zachować, jest pytaniem do Twojego księgowego.

Jeśli przeniosę zweryfikowanego kupującego do grupy „0% VAT”, czy to usunie podatek?

Nie samo z siebie. Zmiana grupy klienta zmienia tylko wyświetlanie cen i rabaty grupowe. Podatek jest wyliczany z grupy reguł podatkowych produktu względem kraju dostawy, więc VAT spada do zera tylko wtedy, gdy ta sama logika stosuje też do zamówienia stawkę zerową / odwrotne obciążenie. Dlatego zmianę grupy i zwolnienie podatkowe trzeba wykonywać razem, a nie traktować jednego jako przełącznika drugiego.

Czy natywny tryb B2B zatrzyma zamówienie, które przekracza limit kredytowy klienta?

Nie. Dozwolona kwota zaległości zasila tylko raport tylko do odczytu Klienci → Zaległości; rdzeń nigdy nie blokuje zamówienia ponad limit, nie wylicza terminu płatności, nie tworzy wiekowania salda ani nie wysyła przypomnień. Egzekwowanie (blokada albo wstrzymanie do akceptacji) i pełny panel należności dodaje nasz moduł B2B Deferred Payment Terms.

Czy firmy z Wielkiej Brytanii są po Brexicie traktowane jako unijni klienci odwrotnego obciążenia?

Nie. Od 1 stycznia 2021 r. Wielka Brytania jest poza unijnym obszarem VAT, więc sprzedaż firmom z GB jest eksportem, a nie dostawą wewnątrzwspólnotową, a numery VAT GB weryfikuje się przez HMRC zamiast VIES. Wyjątkiem są przemieszczenia towarów w Irlandii Północnej, które zachowują specjalne traktowanie unijne i używają numerów XI możliwych do walidacji w VIES.

Czy mogę oferować terminy płatności net-90 dowolnemu klientowi biznesowemu z UE?

Nie wszędzie. Według stanu na 2026 r. kilka państw członkowskich ogranicza okresy płatności B2B, Belgia do 60 dni, Francja do 60 dni od faktury (albo 45 dni od końca miesiąca), więc „net 90” może narazić Cię na naruszenie wobec kupujących z tych krajów. Ustaw maksimum per grupa na właściwy pułap i potwierdź aktualną regułę z księgowym przed opublikowaniem warunków.

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 Tychów. Tworzy i utrzymuje katalog ponad 150 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