Przejdź do treści

Koszyk i faktura muszą się zgadzać co do grosza

Najczęstsza reklamacja księgowości przy integracji WooCommerce z ERP nie dotyczy braku danych, tylko różnicy jednego grosza. Bierze się z tego, że sklep trzyma ceny brutto i zaokrągla na pozycji, a ERP liczy od netto na całym dokumencie. Tę decyzję podejmuje się przed wdrożeniem, nie po pierwszym miesiącu sprzedaży.

order_map.jsonVAT
MODEceny wprowadzane bruttoB2C
CALCzaokrąglenie na pozycjiustalone
CLASSklasa podatkowa z ERPmapa
BATCHorders/batch200
DOCnumer faktury wracazapis
Jedna zasada liczenia po obu stronach i numer dokumentu zapisany przy zamówieniu.

Netto czy brutto — konsekwencje obu wyborów

W WooCommerce to ustawienie globalne. Zmiana po starcie sprzedaży przelicza cały katalog i rozjeżdża historyczne zamówienia, dlatego traktujemy ją jak decyzję jednorazową.

Porównanie trybu cen netto i brutto w integracji z ERP
AspektCeny wprowadzane bruttoCeny wprowadzane netto
Typowe zastosowaniesprzedaż detalicznasprzedaż B2B i mieszana
Cena na listingurówna, bez końcówekwyliczana, bywa z groszówką
Zgodność z ERP liczącym od nettowymaga wspólnej reguły zaokrągleńnaturalna
Zmiana stawki VATzmienia netto, brutto zostajezmienia brutto, netto zostaje
Sprzedaż zagranicznatrudniejsza — inna stawka zmienia marżęłatwiejsza — netto stałe
Ryzyko różnic groszowychwyższeniższe

Niezależnie od wyboru spisujemy jedną zasadę: czy VAT liczony jest na pozycji, czy na sumie dokumentu, i z jakim zaokrągleniem. Ta sama zasada musi obowiązywać w sklepie i w ERP.

Od kliknięcia „kupuję" do dokumentu w ERP

01

Zdarzenie

Webhook na zmianie statusu zamówienia na uzgodniony (najczęściej „w realizacji"), nie na moment złożenia.

02

Kompletowanie danych

Pozycje z SKU wariantu, ceny netto i brutto, klasa podatkowa, rabaty, koszt dostawy, adresy, forma płatności.

03

Walidacja przed wysyłką

Sprawdzamy kontrahenta, NIP, kompletność adresu i to, czy każda pozycja ma odpowiednik w kartotece ERP.

04

Przekazanie z kluczem

Zamówienie idzie z kluczem idempotencji. Sklep zapisuje w metadanych, że eksport się powiódł.

05

Powrót dokumentu

Numer faktury lub WZ wraca do zamówienia w WooCommerce, żeby obsługa klienta nie musiała szukać w ERP.

Cztery objawy, po których poznajemy tę konkretną integrację

  • Grosz różnicy na fakturze — dwa różne miejsca zaokrąglania VAT.
  • Zamówienie w ERP dwa razy — brak klucza idempotencji przy ponowieniu.
  • Pozycja bez dopasowania — wariant bez unikalnego SKU albo SKU zmienione przez wtyczkę.
  • Eksport gubi zamówienia przy ruchu — WP-Cron uruchamiany odwiedzinami zamiast harmonogramem systemowym.
PoleŹródłoUwaga
SKU pozycjiwariant, nie rodzicmusi być unikalne
cena nettoWooCommercewg wybranego trybu
stawka VATklasa podatkowamapa do ERP
rabatkupon lub regułaosobna pozycja lub korekta
dostawametoda wysyłkiwłasna stawka VAT
NIPpole checkoutuwalidacja przed eksportem

WooCommerce i ERP — pytania

To decyzja, którą trzeba podjąć przed integracją, bo zmiana później przelicza cały katalog. Przy sprzedaży B2C zwykle wygodniej trzymać ceny brutto, przy B2B netto. Kluczowe jest, żeby ERP i sklep liczyły VAT w tym samym kierunku, inaczej pojawią się różnice groszowe na dokumentach.
Stawki i klasy podatkowe muszą mieć jedno źródło. Zwykle prowadzi je ERP, a sklep dostaje gotową klasę podatkową per produkt. Reguły dla wysyłek zagranicznych spisujemy osobno, bo to najczęstsze miejsce rozjazdu między koszykiem a fakturą.
Tak, REST API udostępnia operacje batch dla produktów i wariantów. Przy większych katalogach to podstawa, bo aktualizacja rekord po rekordzie generuje setki zapytań i mocno obciąża hosting. Rozmiar paczki dobieramy do limitów serwera.
Zamówienie dostaje własny klucz idempotencji, a sklep zapisuje w metadanych, że eksport się powiódł i jaki numer dokumentu wrócił z ERP. Ponowienie po timeoucie sprawdza ten znacznik zamiast wysyłać zamówienie drugi raz.
Najpierw ustalamy, która wtyczka zapisuje to samo pole, i wyłączamy jej automatyczne działanie albo zawężamy zakres. Jeżeli funkcja jest potrzebna, przenosimy ją do kontrolowanego kodu motywu lub małego modułu, zamiast godzić się na dwa systemy piszące do jednego pola.

Napisz, czy sprzedajesz B2C, B2B czy jedno i drugie

Od tego zaczynamy: tryb cen, klasy podatkowe i moment, w którym zamówienie ma trafiać do ERP.