„Integracja z ERP, płatnościami i kurierami” to nie jeden moduł do włączenia, a trzy niezależne przepływy, które muszą zgadzać się co do jednego rekordu — zamówienia. ERP odpowiada za stan magazynowy i cenę, operator płatności za potwierdzenie wpłaty, kurier za etykietę i status przesyłki. Dopóki którykolwiek z tych przepływów obsługujesz ręcznie, koszt obsługi rośnie razem z liczbą zamówień, a nie maleje. Poniżej znajdziesz listę typowych błędów, punkty kontrolne i pytania, które warto zadać wykonawcy przed podpisaniem umowy. Podstawy techniczne rozwijamy w sekcji o integracjach API.

Co naprawdę znaczy „integracja z ERP, płatnościami i kurierami” w sklepie

W cenniku wykonawcy to często jedna pozycja: „integracja z ERP, płatnościami i kurierami”. W praktyce są to trzy niezależne przepływy, które spotykają się na jednym rekordzie — zamówieniu. Każdy ma inne źródło prawdy i inne tempo zmian.

Między tymi systemami realnie przepływają: stany magazynowe, ceny, zamówienia z pozycjami, dane klienta i adres dostawy, faktury, etykiety i numery przesyłek, statusy doręczenia, zwroty i korekty. Pominięcie choćby jednego strumienia oznacza, że ktoś musi go domknąć ręcznie.

Integracja a eksport CSV raz na godzinę. Eksport nie jest zły — jest wystarczający, gdy masz 20–30 zamówień miesięcznie, jeden magazyn i jedną osobę, która i tak codziennie weryfikuje stany. Przestaje wystarczać, gdy sprzedajesz ten sam towar na trzech kanałach: plik generuje się o 14:00, a o 14:10 ktoś kupuje ostatnią sztukę, która już nie istnieje.

Przykład liczbowy. Sklep w Toruniu robiący 500 zamówień miesięcznie. Ręczne przepisanie danych do ERP i wystawienie faktury to ok. 2 minuty, etykieta w panelu kuriera 1,5 minuty, sprawdzenie wpłaty 1 minuta, aktualizacja statusu 0,5 minuty — razem ok. 5 minut na zamówienie. Przy 25 zamówieniach dziennie to ponad 2 godziny pracy każdego dnia, około 41 godzin miesięcznie. Do tego dochodzą pomyłki przy przepisywaniu — przy 2% błędów to 10 zamówień w miesiącu do wyjaśniania z klientem. Szerszy opis zakresu znajdziesz w materiale o tym, co obejmują integracje z ERP, płatnościami i kurierami.

WarstwaŹródło prawdyCo przepływaObjaw braku integracji
ERPstan magazynowy i cenastany, ceny, waga, VAT, dokumentysprzedaż towaru, którego nie ma; ceny niezgodne z cennikiem
Płatnościstatus transakcji u operatorapotwierdzenie wpłaty, zwrot, dane do rozliczeniawysyłka przed zaksięgowaniem, ręczne sprawdzanie przelewów
Kuriernumer przesyłki u przewoźnikaetykieta, statusy, zwroty, pobranieręczne klejenie etykiet, klient dzwoni po status

Jak wygląda poprawna synchronizacja — mapowanie danych krok po kroku

Klucz łączący rekordy. Zanim cokolwiek zsynchronizujesz, ustal, po czym łączysz produkt w sklepie z towarem w ERP. Trzy kandydatury: SKU, EAN i wewnętrzne ID z ERP. SKU jest wygodne dla ludzi, ale zmienia się przy zmianie dostawcy — po zmianie SKU tracisz powiązanie i tworzysz duplikat. EAN bywa wspólny dla kilku wariantów (np. ten sam kod dla kilku rozmiarów) albo w ogóle nie istnieje dla towarów na wagę. Najstabilniejsze jest ID z ERP — dlatego w sklepie warto trzymać dodatkowe pole erp_id i mapować po nim, a SKU traktować jako pole pomocnicze.

Mapowanie pól — tu wybucha najwięcej wdrożeń. Sprawdź po kolei: jednostkę miary (ERP sprzedaje karton 12 szt., sklep sztuki), stawkę VAT (23/8/5/0 i towary zwolnione), walutę, cenę netto i brutto (ERP trzyma netto — przeliczanie i zaokrąglanie na poziomie sklepu musi być ustalone raz), stany z buforem bezpieczeństwa (np. 2 szt. zapasu, żeby nie sprzedać towaru odłożonego dla klienta stacjonarnego) oraz wagę i wymiary potrzebne do wyceny kuriera.

Kierunek przepływu. ERP jest źródłem prawdy dla stanu i ceny. Sklep jest źródłem prawdy dla zamówienia — nie odwrotnie. Zamówienie idzie do ERP, wraca z numerem dokumentu i danymi do faktury. Nie pozwól, żeby dwa systemy jednocześnie nadpisywały stan.

Częstotliwość i tryb. Płatności i nadania: webhook, reaguj od razu. Wysyłka zamówienia do ERP: kolejka z ponowieniami (retry), żeby awaria ERP nie zgubiła dokumentu. Stany: synchronizacja przyrostowa co 5–15 minut po polu daty modyfikacji plus pełna raz na dobę w nocy. Każde żądanie opisuj kluczem idempotentnym — inaczej przy ponowieniu zdejmiesz stan dwa razy. Techniczne podstawy opisujemy w sekcji o integracjach API.

Strefy czasowe i kodowanie. Trzymaj UTC w bazie i przeliczaj na Europe/Warsaw przy prezentacji; cron ustawiony na 02:30 w dniu zmiany czasu potrafi wykonać się dwa razy albo wcale. Starsze ERP nadal zapisują pliki w Windows-1250 — polskie znaki w nazwach towarów wysypują import, jeśli nie ustawisz kodowania jawnie. Dokumentacja techniczna PrestaShop dla deweloperów opisuje, jak warstwa webservice przyjmuje takie dane.

DaneŹródło prawdyTypowa pułapka
Stan magazynowyERPbrak bufora — sprzedaż towaru odłożonego dla klienta stacjonarnego
CenaERPprzeliczanie netto/brutto i zaokrąglanie w dwóch miejscach
Zamówieniesklepnadpisywanie zamówienia danymi z ERP po ponownym imporcie
Fakturajedno miejsce (do ustalenia)dwie serie numeracji i zdublowany dokument
Numer przesyłkikurieretykieta wygenerowana, ale numer nie wrócił do sklepu

ERP pod polski e-commerce: Subiekt, Comarch Optima, WF-Mag — co sprawdzić przed wyborem

Nie ma „najlepszego ERP do sklepu”. Jest system, do którego da się bezpiecznie podłączyć. W polskich małych i średnich firmach dominują trzy rodziny: Subiekt (InsERT), Comarch Optima oraz WF-Mag z rodziny InsERT dla samej gospodarki magazynowej. Każdy z nich komunikuje się ze sklepem jedną z trzech dróg.

Wydajność. Baza ERP dzieli zasoby z księgowością. Pełne zapytanie o 20 tysięcy towarów odpalane co minutę potrafi zablokować tabelę i spowolnić wystawianie faktur. Praktyka: synchronizacja przyrostowa po polu daty modyfikacji, maksymalnie jedno zapytanie na sekundę, pełna synchronizacja w nocy. Jeśli system na to pozwala, czytaj z kopii bazy, a nie z produkcyjnej.

KSeF i faktury. Ustal, gdzie faktura ma powstać — i nie rób tego w dwóch miejscach. Jeśli dokument tworzy ERP, sklep przekazuje tylko dane zamówienia i NIP, a ERP wysyła fakturę do KSeF. Jeśli fakturę wystawia sklep, do ERP musi trafić zapis dokumentu, inaczej rozjedzie się magazyn i księgowość. Pilnuj jednego ciągu numeracji — dwie serie numerów to problem przy kontroli. Harmonogram wdrożeń KSeF był przesuwany, więc terminy weryfikuj u swojego biura rachunkowego, nie w artykule z bloga.

Pytanie kontrolne do klienta: kto administruje ERP (wewnętrzny informatyk, biuro rachunkowe, dostawca), czy dostawca systemu udostępni dokumentację integracyjną i środowisko testowe — najlepiej kopię bazy — oraz czy dostęp integracyjny wymaga dodatkowej licencji. Bez odpowiedzi na te trzy pytania wycena wdrożenia jest zgadywaniem. Podobne układy w firmach z sąsiedniego regionu opisujemy przy okazji integracji z ERP, płatnościami i kurierami w Bydgoszczy.

Droga komunikacjiKiedy się sprawdzaGłówne ryzyko
Oficjalne API / biblioteka producentanowsze wersje, stabilne wdrożeniekoszt licencji lub modułu, ograniczenia wydajności
Bezpośredni dostęp do SQLstarsze wersje, budżetowe wdrożeniezmiana struktury tabel po aktualizacji ERP
Pliki XML / CSV / EPPbrak API, praca godzinowaopóźnienie danych i błędy kodowania znaków

Płatności: BLIK, Przelewy24, PayU, Stripe, tpay — co sprawdzić przed wdrożeniem

Wklejenie klucza API to kwadrans. Reszta pracy to logika statusów. Pierwsze pytanie do wykonawcy: co zrobi system, gdy ten sam webhook przyjdzie dwa razy? Przelewy24, PayU, tpay i Stripe ponawiają notyfikację, jeśli nie dostaną odpowiedzi 200 w ciągu kilku sekund. Bez idempotencji — czyli bez zapisania identyfikatora transakcji operatora (p24_session_id, order_id w PayU, payment_intent w Stripe) i potraktowania powtórki jako duplikatu — dostaniesz dwa dokumenty w ERP, dwa maile do klienta i podwójną rezerwację towaru.

Druga rzecz: „płatność autoryzowana” to nie „płatność zaksięgowana”. Przy kartach i BLIK-u pieniądze są najpierw blokowane (auth), a rozliczane dopiero przy capture. Faktura i zwolnienie towaru do wysyłki powinny iść po zaksięgowaniu, nie po autoryzacji. To najczęstsze miejsce, w którym rozjeżdża się sklep i ERP.

Harmonogram i kolejność prac dla trzech przepływów opisujemy w materiale o integracjach z ERP, płatnościami i kurierami. Bramki w WooCommerce to wtyczki konfigurowane w panelu — punkt wyjścia znajdziesz w dokumentacji WooCommerce.

Zdarzenie u operatoraStatus zamówienia w sklepieCo zrobić w ERP
Autoryzacja karty OK (auth)„Oczekuje na płatność” / „Autoryzowana”Rezerwacja dokumentu, bez faktury
Płatność zaksięgowana (capture)„Opłacone” / „W realizacji”Faktura, zwolnienie rezerwacji, wysyłka
Płatność nieudana lub porzucona„Nieopłacone” + link do ponownej zapłatyBrak dokumentu, cooldown na kolejne próby
Powtórzony webhook (duplikat)Bez zmiany — traktowany jako no-opBrak drugiego dokumentu (klucz: ID transakcji)
Zwrot / chargeback„Zwrócone” / „Reklamacja”Korekta faktury, towar z powrotem na stan
Płatność częściowa (BNPL, raty)„Częściowo opłacone”Należność z saldem, uzgodnienie z operatorem

Kurierzy: InPost, DPD, DHL — etykiety, statusy, punkty odbioru

Cykl przesyłki wydaje się prosty: etykieta, odbiór, sortownia, doręczenie. Pęka zwykle w czterech miejscach.

Dane do etykiety. API InPost, DPD i DHL wymagają wagi, trzech wymiarów, wybranej usługi, kwoty pobrania wraz z opłatą za pobranie, deklaracji wartości (ubezpieczenie) i telefonu odbiorcy. Uwaga na wagę gabarytową: liczy się jako (długość × szerokość × wysokość) / 6000, u części przewoźników / 5000. Karton 40×30×20 cm to 24 000 cm³, czyli 4 kg gabarytowo — nawet jeśli realnie waży 1,2 kg. Przekroczenie limitu skrytki paczkomatu kończy się dopłatą albo odmową przyjęcia.

Mapowanie metod dostawy. Metoda w sklepie musi wskazywać jedną konkretną usługę: „Paczkomat 24/7” → paczkomat InPost, „DPD Pickup” → punkt DPD, „Kurier DPD” → DPD Classic. Numer punktu waliduj przed wystawieniem etykiety — punkt mógł zostać zamknięty między złożeniem zamówienia a pakowaniem.

Statusy zwrotne. Nie wszystkie zdarzenia są pushowane webhookiem, część usług trzeba odpytować co 15–30 minut. Mapowanie: nadana → „wysłane”, do odbioru w punkcie → „gotowe do odbioru” plus mail, doręczona → „zrealizowane” i rozliczenie pobrania, zwrot do nadawcy → „zwrot” i decyzja, czy wracamy z pieniędzmi, czy wysyłamy ponownie.

Zwroty. Etykieta zwrotna generowana z panelu klienta po numerze zamówienia, z limitem 14 dni i kosztem po stronie sklepu. Bez tego każdy zwrot obsługujesz ręcznie.

Test przed startem: wyślij 5 etykiet — paczkomat, kurier krajowy, punkt Pickup, pobranie, przesyłka zagraniczna. Sprawdź, czy status wrócił do sklepu i do ERP, czy numer listu trafił do maila i czy stan magazynowy się zgodził. Zasady łączenia systemów opisujemy w sekcji o integracjach API, a statusy zamówień w PrestaShop najlepiej mapować zgodnie z dokumentacją dla deweloperów PrestaShop.

Metoda w sklepieUsługa u kurieraDane wymagane do etykiety
Paczkomat 24/7InPost — paczkomatkod paczkomatu, gabaryt A/B/C, telefon, e-mail
DPD PickupDPD — punkt odbioruID punktu, waga, wymiary, telefon
Kurier DPD / DHLDPD Classic / DHL Parceladres, waga, wymiary, ewentualne okno doręczenia
Pobranie (COD)dowolna z powyższych + pobraniekwota pobrania, opłata za pobranie, konto do wypłaty
Zwrot do nadawcyetykieta zwrotna InPost / DPDnumer zamówienia, adres nadawcy, limit 14 dni

Ile to realnie kosztuje — widełki w godzinach, nie w cenniku z sufitu

Cena „od 500 zł za integrację” nic nie mówi, bo nie wiadomo, ile godzin pracy jest w środku. Poniżej widełki z projektów dla firm MŚP — rozliczane godzinowo, nie ryczałtem z sufitu.

Co podnosi koszt: brak dokumentacji API (reverse engineering albo długie uzgodnienia z dostawcą systemu), nietypowe stany magazynowe, wielowalutowość i przeliczanie kursów, kilka kanałów sprzedaży (własny sklep plus marketplace), stare wersje PHP. Każdy z tych punktów dodaje zwykle 10–40 h.

Dlaczego rozliczamy się za godziny: stawka obejmuje analizę i warsztat mapowania statusów (4–8 h), development (zwykle 60–70% budżetu), testy na sandboxach operatorów, wdrożenie na produkcji w oknie nocnym, dokumentację powdrożeniową i 30 dni wsparcia po starcie. Dla sklepu z 200 zamówieniami miesięcznie, na Subiekcie GT, z Przelewy24 i dwoma kurierami realny zakres to 60–80 h — porównywalne wdrożenie opisaliśmy w materiale o integracjach z ERP, płatnościami i kurierami w Bydgoszczy.

WariantTypowy zakresGodzinyKiedy ma sens
A — wtyczka + konfiguracja1 sklep, 1 bramka, 1 kurier, popularne ERP8–20 hStart sprzedaży, mało zamówień, proste stany
B — moduł półwłasny2–3 płatności, 2 kurierów, ERP z API40–90 hRosnąca liczba zamówień, ręczna obsługa przestaje się opłacać
C — integracja pod nietypowe ERPwiele magazynów, kanałów i walut100–250 h i więcejAutorskie ERP, marketplace, stany w kilku lokalizacjach

Lista kontrolna wdrożenia — 14 punktów do odklikania przed startem

Punkt kontrolny bez dowodu to tylko dobre intencje. Zamiast pytać wykonawcę „czy to będzie działać?”, zbieraj artefakty: zrzut konfiguracji, log z testu, podpisany dokument z mapowaniem pól. Poniżej 14 punktów, które możesz odklikać niezależnie od tego, kto robi wdrożenie.

  1. Środowisko testowe ERP i sklepu — działające minimum 2 tygodnie przed produkcją, na kopii bazy. Testowanie bezpośrednio na sklepie to nie test, a ryzyko.
  2. Dwa komplety kluczy API — osobne dla testów i dla produkcji, dwa endpointy, dwa konta w ERP.
  3. Dokument mapowania pól — nazwa pola w sklepie, nazwa w ERP, typ, maksymalna długość, czy wymagane.
  4. Klucze łączące — SKU (nigdy nazwa produktu), ID zamówienia, ID transakcji płatniczej, numer przesyłki. Jeden klucz = jeden rekord.
  5. Słownik statusów — tabela „status w sklepie → status w ERP → status u kuriera”, mapowanie 1:1.
  6. Reguły VAT i walut — netto czy brutto, gdzie zaokrąglenie, jaki kurs dla zamówień zagranicznych.
  7. Strefa czasowa — serwer sklepu, ERP i kurier w jednym standardzie (np. Europe/Warsaw), daty zapisywane z offsetem.
  8. Testy na realnych danych — eksport 300–1000 prawdziwych zamówień i katalog z rzeczywistymi SKU, wagami i wymiarami. Nie 5 produktów demonstracyjnych.
  9. Scenariusze brzegowe — anulowanie, zwrot, wysyłka częściowa, brak stanu, dopłata do przesyłki.
  10. Test kolejki — celowe zatrzymanie workera i sprawdzenie, czy zadania wracają po retry, a nie znikają.
  11. Plan rollback — procedura, kto decyduje i w jakim czasie wracacie do ręcznej obsługi.
  12. Osoba dyżurująca w dniu startu — imię, numer telefonu, godziny.
  13. Alerty — kolejka starsza niż 15 minut, błędy 5xx na webhooku, brak potwierdzenia płatności.
  14. Zamrożenie zmian — 48 godzin przed startem żadnych aktualizacji sklepu, modułów i ERP.

Jeśli ERP wystawia dane przez webservice, pola zamówienia sprawdzisz w dokumentacji WooCommerce — porównaj je z tym, co faktycznie wysyła sklep, a nie z tym, co obiecuje wykonawca.

ObszarDowód gotowościNajpóźniej
Środowisko testoweDziałająca kopia sklepu i ERP, osobne klucze API2 tygodnie przed startem
Mapowanie pól i kluczyDokument w wersji 1.0, zaakceptowany przez obie strony3 tygodnie przed
Testy na realnych danychRaport z przebiegu 300+ zamówień i katalogu produkcyjnego1 tydzień przed
RollbackNapisana procedura i wskazana osoba decyzyjna3 dni przed
Dyżur i alertyAlerty przetestowane na telefonie, grafiki potwierdzone1 dzień przed

7 pułapek i jak je wykryć w 5 minut

Te awarie nie wyglądają spektakularnie. Sklep działa, tylko wieczorem ktoś zauważa, że w ERP brakuje kilkunastu zamówień. Poniżej siedem typowych pułapek i sposób sprawdzenia każdej z nich w kilka minut, bez wchodzenia w kod.

  1. Duplikaty zamówień i faktur. Wykrycie: policz zamówienia z ostatniej doby w sklepie i dokumenty w ERP, porównaj też sumy brutto co do grosz. Każda różnica oznacza brak klucza idempotencji po stronie webhooka.
  2. Rozjeżdżone stany magazynowe. Wykrycie: weź 10 losowych SKU i porównaj stan sklep vs ERP. Różnica większa niż przyjęty bufor (np. 2% albo 3 sztuki) to sygnał, że kolejka gubi zdarzenia stanowe.
  3. Race condition przy dwóch zamówieniach na ostatnią sztukę. Wykrycie: dwa konta, jedna sztuka na stanie, dwa zamówienia w tej samej sekundzie. Jeśli oba przeszły — integracja tylko czyta stan, zamiast go rezerwować w ERP.
  4. Zatrzymane kolejki i retry. Wykrycie: licznik zadań nieprzetworzonych starszych niż 15 minut plus logi. Jeśli liczba rośnie i nie spada, worker padł, a retry kręci się w pętli bez backoffu.
  5. Timeouty webhooków płatności. Wykrycie: lista zamówień „oczekuje na płatność” starszych niż 15 minut przy potwierdzonej wpłacie u operatora. Sklep odpowiadał zbyt wolno albo zwracał 5xx.
  6. Błędy jednostek, VAT i stref czasowych. Wykrycie: raz w miesiącu porównaj ręcznie 3 faktury — stawkę, netto/brutto i datę sprzedaży. Zamówienie z 23:40 łatwo wpada w inny miesiąc i inne rozliczenie.
  7. Ciche wyłączenie integracji po zmianie API dostawcy. Wykrycie: sprawdź kody odpowiedzi na starych endpointach (404, 410) i subskrybuj changelog operatora. Dokumentacja deweloperska PrestaShop pokazuje, że endpointy i struktury bywają wersjonowane — po aktualizacji trzeba je przetestować, a nie założyć, że działa.

Praktyka z wdrożeń: integracje z ERP, płatnościami i kurierami w Bydgoszczy najczęściej padają nie na etapie pisania kodu, ale przy pierwszej zmianie po stronie dostawcy. Warto mieć na to procedurę, nie nadzieję.

Opieka po wdrożeniu: SLA, monitoring i co powinno być w umowie

Integracja po starcie jest jak instalacja elektryczna — nikt o niej nie myśli, dopóki nie zgaśnie światło. Różnica jest jedna: prąd włącza się po minucie, a kolejkę zamówień odtwarza się godzinami. Dlatego w umowie powinny znaleźć się cztery rzeczy.

Monitoring z alertem, nie dashboard. Dashboard, na który nikt nie patrzy, nie jest monitoringiem. Alert ma przyjść na telefon, zanim klient napisze „nie dostałem potwierdzenia”. Minimalny zestaw progów: zadanie w kolejce starsze niż 15 minut, jakikolwiek błąd 5xx na webhooku płatności, brak potwierdzenia wpłaty 10 minut po zamówieniu, brak etykiety kurierskiej 30 minut po zmianie statusu na „do wysyłki”.

Czas reakcji to nie czas naprawy. W umowie rozdziel oba pojęcia. Reakcja: potwierdzenie przyjęcia zgłoszenia w ciągu 1 godziny w godzinach 8–18. Naprawa incydentu krytycznego: 4 godziny. Obejście tymczasowe (np. ręczne wystawianie etykiet): do 24 godzin. Incydent krytyczny w sklepie to dokładnie: nie da się złożyć zamówienia, płatności nie księgują się, nie da się wygenerować etykiet albo ceny i stany rozjeżdżają się masowo.

Dostęp do dewelopera, który pisał integrację. Jeśli między tobą a autorem kodu stoi pośrednik, każde zgłoszenie nabiera jednego–dwóch dni opóźnienia na przekazanie kontekstu. W szczycie sezonu to tysiące złotych. W umowie wpisz prawo do rozmowy z autorem i obowiązek przekazania dokumentacji mapowania pól.

Utrzymanie kontra przestój. Koszt godziny przestoju policz na własnych danych: liczba zamówień na godzinę × średnia wartość zamówienia × marża, plus koszt obsługi reklamacji i zwrotów. Porównaj to z roczną opieką — dopiero wtedy widać, czy warto oszczędzać. Kiedy dokupić rozwój? Gdy pojawia się nowy kurier albo nowy kanał sprzedaży — wyceniaj za punkty (kontrakt API, mapowanie statusów, etykieta, testy), nie za „pakiet”. Zamawiaj poza sezonem. Kontekst techniczny rozwijamy w sekcji o integracjach API.

Najczęstsze błędy i jak je wykryć

Traktowanie trzech integracji jako jednej pozycji w ofercie („integracja z ERP i kurierami”).

Jak wykryć: W kosztorysie nie ma rozbicia na przepływ danych magazynowych, płatniczych i logistycznych, brak osobnych etapów odbioru.

Jak naprawić: Rozbij zakres na trzy niezależne moduły, każdy z własnym zakresem testów i kryterium akceptacji. Jeden padający przepływ nie może blokować dwóch pozostałych.

Łączenie rekordów po nazwie produktu zamiast po SKU lub EAN.

Jak wykryć: Po pierwszej synchronizacji w sklepie pojawiają się duplikaty, część zamówień nie pomniejsza stanów, ceny wracają do starych wartości.

Jak naprawić: Ustal jeden klucz główny (najlepiej EAN, z SKU jako kluczem zapasowym) i wygeneruj raport rozjazdów między sklepem a ERP jeszcze przed uruchomieniem produkcji.

Brak idempotencji przy webhookach płatności — powtórzone powiadomienie tworzy drugą płatność lub drugą fakturę.

Jak wykryć: W historii zamówienia widać dwa wpisy wpłaty dla jednej transakcji albo dwie faktury z tej samej daty, numeracja dokumentów się rozjeżdża.

Jak naprawić: Zapisuj identyfikator transakcji jako klucz idempotencji, loguj każde zdarzenie i odrzucaj duplikat zarówno w sklepie, jak i po stronie ERP.

Synchronizacja stanów bez bufora bezpieczeństwa.

Jak wykryć: Sprzedajesz towar, którego fizycznie już nie ma, bo sklep nie zdążył pobrać aktualnego stanu z ERP przed zaksięgowaniem zamówienia.

Jak naprawić: Ustaw bufor (np. 1–2 sztuki dla produktów o szybkim rotowaniu) i regułę, że stan poniżej progu ustawia produkt jako niedostępny w sklepie.

Dokument sprzedaży powstaje dwa razy: raz w sklepie, raz w ERP.

Jak wykryć: Dwie niezależne numeracje faktur, ręczne korygowanie dokumentów przed wysyłką do KSeF, brak zgodności kwot między systemami.

Jak naprawić: Wyznacz jedno źródło prawdy dla dokumentu i wyłącz generowanie faktury w drugim systemie. Sklep przekazuje dane zamówienia, ERP wystawia dokument.

Statusy przesyłek aktualizowane ręcznie przez pracownika.

Jak wykryć: Klient dzwoni i pyta o paczkę, bo status w sklepie jest sprzed kilku dni, mimo że przesyłka została już doręczona.

Jak naprawić: Włącz odbiór statusów od kuriera (webhook lub cykliczne pobieranie) i zmapuj je na statusy zamówienia, w tym sytuacje „do odbioru” i „zwrot do nadawcy”.

Lista kontrolna do odklikania

Podsumowanie

Integracja z ERP, płatnościami i kurierami to trzy niezależne przepływy, które łączy jeden rekord — zamówienie. Każdy z nich wymaga osobno ustalonego klucza danych, mapowania statusów i sposobu reagowania na błędy. Największe oszczędności nie wynikają z samego podłączenia API, a z usunięcia ręcznej pracy przy stanach, statusach i dokumentach. Zanim podpiszesz umowę, sprawdź kanał komunikacji z ERP, dostęp do środowiska testowego i to, gdzie powstaje faktura.

Najczęściej zadawane pytania

Ile trwa wdrożenie integracji z ERP, płatnościami i kurierami?

Nie ma jednej liczby, bo czas zależy od trzech rzeczy: kanału komunikacji z ERP, dostępu do dokumentacji i środowiska testowego oraz liczby metod dostawy i płatności do obsłużenia. Proste przypadki z gotowym API zamykają się w kilku tygodniach, wdrożenia oparte na plikach wymiany lub bazie SQL ciągną się dłużej. Największym ryzykiem nie jest samo programowanie, a oczekiwanie na dane i decyzje po stronie dostawcy ERP.

Czy wystarczy eksport CSV co godzinę?

Często wystarcza, jeśli sprzedajesz wolno rotujące produkty i nie masz wielu zamówień dziennie. Problem pojawia się przy towarze schodzącym szybko — przez godzinę sklep może sprzedać coś, czego już nie ma. Eksport plikowy ma też drugą wadę: nie informuje o błędzie, więc rozjazd danych można zauważyć dopiero po reklamacji klienta.

Czy muszę zmieniać ERP, żeby zrobić integrację?

Nie. W większości przypadków problemem nie jest sam system, a brak dostępu do jego API, dokumentacji lub środowiska testowego. Zanim pomyślisz o wymianie narzędzia, sprawdź, czy dostawca udostępni Ci kanał komunikacji i czy pozwoli przetestować integrację poza produkcją. Zmiana ERP to projekt wielokrotnie większy niż samo spięcie sklepu.

Gdzie powinna powstać faktura — w sklepie czy w ERP?

Zwykle w ERP, bo tam pracuje księgowość i tam trafia dokument do KSeF. Sklep powinien przekazywać komplet danych zamówienia, a nie tworzyć własny dokument. Najważniejsze to wyłączyć generowanie faktury w drugim systemie, bo dwie numeracje i dwa obiegi to najprostsza droga do błędów w rozliczeniach.

Jak obsłużyć płatności odroczone i częściowe?

Trzeba je rozpoznać jako osobne stany, a nie jako zwykłe „zapłacone” lub „niezapłacone”. Płatność odroczona oznacza, że sklep nie ma jeszcze pieniędzy, ale zamówienie idzie do realizacji. Wpłata częściowa wymaga z kolei informacji o kwocie pozostałej do zapłaty. Oba przypadki powinny mieć własne statusy w sklepie i jasną regułę księgowania w ERP.

Co się stanie, jeśli powiadomienie o płatności dotrze dwa razy?

Bez zabezpieczenia powstanie drugi wpis wpłaty, a w skrajnym przypadku druga faktura. Rozwiązaniem jest klucz idempotencji oparty na identyfikatorze transakcji i log każdego zdarzenia. Warto przetestować ten scenariusz na środowisku testowym, zanim integracja trafi na produkcję.

Jeśli chcesz zweryfikować ofertę wykonawcy albo zaplanować integrację etapami, zacznij od przeglądu integracji API i napisz do nas z opisem swojego sklepu oraz ERP — powiemy wprost, co da się zrobić, a co wymaga decyzji po stronie dostawcy systemu.

Źródła i materiały