Integracje z ERP, płatnościami i kurierami to trzy osobne warstwy, które można wdrażać etapami, a nie jednym wielkim projektem. ERP pilnuje stanów magazynowych, faktur i zamówień, integracja płatności potwierdza, że pieniądze faktycznie wpłynęły, a integracja kurierska generuje etykietę, numer przesyłki i status doręczenia. Dla firmy ze Szczecina i okolic oznacza to przede wszystkim mniej ręcznego przepisywania danych między sklepem, księgowością i magazynem. Poniżej znajdziesz kolejność zdarzeń w pełnym przepływie zamówienia, sposoby połączenia sklepu z ERP oraz listę błędów, które najczęściej psują cały proces. Jeśli chcesz najpierw zobaczyć ogólny obraz tematu, zajrzyj do materiału Integracje z ERP, płatnościami i kurierami – co i jak.
To trzy niezależne warstwy, nie jeden projekt. ERP (Subiekt, Comarch ERP Optima, WF-Mag, SAP Business One) pilnuje stanów magazynowych, wystawia faktury i przyjmuje zamówienia. Integracja płatności (Przelewy24, PayU, tpay, Stripe) autoryzuje transakcję i potwierdza, że środki faktycznie wpłynęły. Integracja kurierska (InPost, DPD, DHL, GLS) generuje etykietę, nadaje numer przesyłki i zwraca status doręczenia. Każdą warstwę da się wdrożyć osobno – najczęściej zaczyna się od płatności, bo zakres jest najmniejszy i efekty widać od razu.
Integracja natywna to moduł do PrestaShop albo wtyczka WooCommerce instalowana z panelu, z konfiguracją w kilku polach (klucz API, ID punktu, strefa wysyłki). Zaletą jest szybki start, wadą – każde ERP ma własny moduł i przy zmianie systemu konfigurację przepisujesz od zera. Takie wtyczki są opisane w dokumentacji WooCommerce. Integracja przez middleware to osobna usługa (własny serwis pośredniczący albo gotowy integrator) z kolejką zdarzeń i tabelą mapowania pól. Drożej na starcie, ale jedno miejsce do zmiany, gdy dojdzie drugi kanał sprzedaży.
Przykład z życia: piątek, 14:07, klient kupuje 2 sztuki. Sklep tworzy zamówienie (t=0) i przekazuje je do ERP. W ciągu 2–10 sekund ERP rezerwuje 2 sztuki i zwraca realny stan – jeśli na magazynie było 7, po rezerwacji system pokazuje 5 dostępnych. Bramka płatności autoryzuje transakcję i wysyła webhook. Kurier w tym momencie nie robi jeszcze nic: etykieta powstanie dopiero po statusie „spakowane”.
Koszt braku integracji policz na sekundach. Przy 30 zamówieniach dziennie i ok. 30 sekundach na przepisanie danych klienta, adresu i pozycji daje to 15 minut dziennie, czyli około 6–8 godzin miesięcznie. To praca, którą da się zautomatyzować. Cały proces poukładany warstwa po warstwie opisujemy w artykule o tym, jak działają integracje z ERP, płatnościami i kurierami.
| Warstwa | Co pilnuje | Co się dzieje bez integracji |
|---|---|---|
| ERP | Stany magazynowe, zamówienia, faktury | Ręczne przepisywanie pozycji i adresów, stany rozjeżdżają się z magazynem |
| Płatności | Autoryzacja i potwierdzenie wpływu środków | Zamówienia w realizacji przed opłaceniem, ręczne sprawdzanie wyciągu |
| Kurier | Etykieta, numer przesyłki, status doręczenia | Adresy wklejane do panelu przewoźnika, brak numeru tracking w sklepie |
Kolejność zdarzeń jest ważniejsza niż sama lista integracji. Typowy przepływ wygląda tak:
Najczęściej urywa się między drugim a trzecim punktem. Gdy płatność nie dojdzie (klient zamknął BLIK, przelew się nie zaksięgował), zamówienie wisi w statusie „oczekiwanie”, a towar jest zarezerwowany w ERP. Magazyn widzi zaniżony stan i nie sprzeda tych dwóch sztuk. Rozwiązanie: zadanie cron, które po 30–60 minutach dla płatności natychmiastowych (albo po 24 h dla przelewu tradycyjnego) odwołuje rezerwację i ustawia status „anulowane – brak płatności”. Bez tego po weekendzie powstaje sztuczny brak towaru.
Źródłem prawdy dla stanu magazynowego jest ERP, nie sklep. Sklep trzyma wyłącznie kopię, odświeżaną po każdej zmianie. Konfiguracja odwrotna – sklep nadrzędny, ERP jako kopiujący – kończy się sprzedażą towaru, którego fizycznie nie ma, i korektami oraz przeprosinami do klientów.
Statusy to osobny projekt. Trzy systemy mają trzy słowniki: sklep używa własnych statusów (w PrestaShop to identyfikatory order_state, w WooCommerce nazwy statusów), ERP ma dokumenty w buforze, potwierdzone i zafakturowane, a przewoźnik operuje statusami przesyłki. Mapowanie trzeba rozpisać w tabeli i przetestować na zamówieniu testowym. Warto zerknąć w dokumentację dla deweloperów PrestaShop przy własnych modułach, a integracje API są tematem naszego huba integracji API.
| Etap | Status w sklepie | Status w ERP | Status przesyłki |
|---|---|---|---|
| Nowe zamówienie | oczekiwanie na płatność | brak dokumentu lub ZK w buforze | brak |
| Opłacone | w realizacji | ZK potwierdzone, faktura w kolejce | brak |
| Spakowane | wysłane | dokument WZ | etykieta utworzona / nadana |
| Dostarczone | zrealizowane | WZ zafakturowane | doręczone |
To decyzja o koszcie i opóźnieniu, nie o „nowoczesności”. Trzy warianty w praktyce:
W polskich MŚP najczęściej spotkasz Subiekt GT i nexo (InsERT), Comarch ERP Optima, WF-Mag, SAP Business One oraz Fakturownia. Zakres możliwości różni się nawet między wersjami tego samego produktu, dlatego przed wyceną trzeba potwierdzić u dostawcy, jakie API (albo moduł integracyjny typu Sfera) jest dostępny w twojej licencji i czy pozwala na dostęp z zewnątrz. WF-Mag w wielu wdrożeniach kończy się na wymianie plików i to jest zupełnie wystarczające.
Kryteria wyboru: liczba zamówień na dobę, tolerancja opóźnienia synchronizacji oraz to, czy ERP działa w chmurze, czy on-premise. Przy serwerze lokalnym ktoś musi otworzyć firewall, wystawić stałe IP albo tunel VPN – i zostaje na dyżurze, gdy to padnie. Osobna pozycja to KSeF: obowiązkowe e-fakturowanie w 2026 r. i tak wymusi integrację sklepu lub ERP z systemem księgowym. Jeśli planujesz to na przyszły rok, sensowniej zaprojektować jedną integrację obejmującą faktury, niż dokładać drugą osobno.
| Wariant | Typowe opóźnienie | Koszt | Kiedy wybrać |
|---|---|---|---|
| API REST/SOAP | sekundy | wyższy na starcie, niższy w utrzymaniu | 50+ zamówień na dobę, potrzebne stany na bieżąco |
| Pliki CSV/XML (FTP, katalog) | 5–30 minut | najniższy | do ok. 50 zamówień na dobę, tolerancja na opóźnienie |
| Middleware / kolejka | sekundy, z buforem na awarie | najwyższy | kilka kanałów sprzedaży, duży wolumen, brak tolerancji na przestoje |
Integracja płatności to nie „wklejenie klucza API”. Klucz to początek. Cała robota polega na obsłużeniu zdarzeń, które przychodzą asynchronicznie, niezależnie od tego, co w tym momencie robi klient w przeglądarce.
Webhook jest podstawą. Status „opłacone” ustawia żądanie POST z serwera bramki na Twój endpoint, a nie powrót klienta na stronę podziękowania. Ten powrót zawodzi w 5–15% przypadków: klient zamknął kartę, adblock zablokował skrypt, bank wrócił na innej karcie przeglądarki, telefon stracił sieć. Sklep, który opiera się wyłącznie na powrocie klienta, trzyma co dziesiąte zamówienie w statusie „oczekuje na płatność”, mimo że pieniądze są na koncie.
Metody. W B2C w Polsce pierwszym wyborem jest BLIK, dalej Przelewy24, PayU, Tpay i Autopay. Stripe ma sens, gdy sprzedajesz za granicę albo prowadzisz subskrypcje — karty i obsługa odnowień są tam wygodniejsze. Dla klientów B2B płacących z konta firmowego działa pay-by-link: generujesz link do konkretnej płatności i wysyłasz go mailem razem z proformą. Klient płaci zwykłym przelewem, a Ty i tak dostajesz webhook i wiesz, kiedy pieniądze wpłynęły.
Dwie rzeczy do zaprojektowania od początku:
PSD2/SCA. Przy kartach bank może wymusić dodatkowe uwierzytelnienie. Klient wychodzi do banku i wraca — poinformuj go o tym wprost na ekranie płatności i zadbaj, żeby powrót trafiał na stronę zamówienia, nie na 404. Inaczej porzuci koszyk w połowie drogi.
Odzyskiwanie. Uruchom cron raz na dobę: pobierz z API bramki transakcje z ostatnich 24–48 godzin i porównaj z zamówieniami o statusie „oczekuje na płatność”. Gdzie bramka mówi „sukces”, a sklep nie — oznacz opłacone i wygeneruj fakturę. Kilkadziesiąt linii kodu, a ratuje przychód, którego nie zobaczysz w żadnym raportem.
Konfigurację webhooków i bramek po stronie sklepu opisuje dokumentacja WooCommerce, a punktem startu dla całego obszaru są integracje API.
| Metoda | Kiedy ma sens | Na co uważać |
|---|---|---|
| BLIK | Sklep B2C, szybka płatność z telefonu | Potwierdzenie przychodzi webhookiem — nie ustawiaj statusu po powrocie klienta |
| Przelewy24 / PayU / Tpay / Autopay | Polski klient, przelewy i BLIK w jednym miejscu | Różne nazwy statusów w API — mapuj je jawnie na statusy sklepu |
| Stripe | Sprzedaż zagraniczna, subskrypcje, karty | Waluty i rozliczenia poza Polską — sprawdź koszty przewalutowania |
| pay-by-link (B2B) | Klient płaci z konta firmowego, płatność odroczona | Link musi wygasać; nie wysyłaj go w tym samym mailu co proforma bez terminu |
Zanim zadzwonisz do wykonawcy, zamknij temat umowy z kurierem. Dostęp do API jest zwykle powiązany z podpisaną umową i numerem klienta (InPost ShipX, DPD WebAPI, DHL24 i analogicznie u GLS czy Poczty). Bez tych danych nie wystawisz etykiety produkcyjnej, choćby kod był gotowy i przetestowany na sucho.
Każda integracja kurierska musi robić trzy rzeczy:
Jeśli zabraknie trzeciego punktu, pracownik i tak będzie codziennie wchodził na stronę kuriera i sprawdzał listę paczek ręcznie. To najczęstsza fałszywa oszczędność w tym obszarze.
Tryby pracy. Pełna automatyzacja przez API kontra półautomatyczne wgrywanie pliku CSV z listą paczek. CSV wystarcza, gdy wysyłasz kilkanaście–kilkadziesiąt paczek dziennie, masz jednego kuriera i nie potrzebujesz statusów w sklepie. Automatyzacja zwraca się, gdy paczek jest więcej, gdy pracuje kilka osób albo gdy klient ma widzieć status przesyłki w panelu zamówienia.
Paczkomaty i punkty odbioru. Pobierz listę punktów przez API i trzymaj ją w cache — odświeżanie raz na dobę wystarcza. Kod wybranego punktu zapisuj przy zamówieniu i waliduj przed zapisem: jeśli punkt został zamknięty albo kod jest nieaktualny, etykieta się nie wygeneruje, a zamówienie utknie w kolejce. Dobra praktyka: blokuj przycisk „Zapłać” do momentu potwierdzenia kodu punktu.
Zwroty i podmiany. Zapytaj wprost, czy API kuriera obsługuje etykiety zwrotne i kto za nie płaci. Nie zakładaj, że skoro jest etykieta nadania, to jest i zwrotna — to pytanie do przedstawiciela handlowego kuriera, nie do wykonawcy integracji.
| Co sprawdzić w umowie | Po co | Skutek braku |
|---|---|---|
| Numer klienta i dane dostępowe do API | Bez nich nie ma etykiet na produkcji | Wdrożenie stoi, mimo gotowego kodu |
| Dostęp do środowiska testowego | Testy bez generowania prawdziwych przesyłek | Testujesz na żywych paczkach i płacisz za błędy |
| Cennik i dopłaty (punkt odbioru, etykieta zwrotna, ZPL) | Ustala realny koszt wysyłki | Zaskoczenie na pierwszej fakturze |
| Format etykiet | PDF czy ZPL do drukarki termicznej | Trzeba dokupić sprzęt albo przebudować proces pakowania |
| Zakres śledzenia zdarzeń | Czy statusy są w API i jak często się odświeżają | Codzienne ręczne sprawdzanie listy paczek |
| Limity zapytań do API | Ile etykiet na godzinę lub dobę możesz wystawić | Integracja działa tylko przy małej skali |
Pytanie o koszt pada zwykle pierwsze, więc odpowiedz sobie na nie sam, jeszcze przed rozmową z wykonawcą. Widełki poniżej dotyczą typowego sklepu MŚP na PrestaShopie albo WooCommerce, bez przepisywania ERP.
Czas kalendarzowy to inna liczba niż godziny. Dla zestawu ERP + płatności + kurier w typowym sklepie MŚP licz 3–6 tygodni. Połowa tego czasu to testy i uzgodnienia z kurierem: czekanie na dane dostępowe, na wzór etykiety, na odpowiedź opiekuna handlowego. Sam kod idzie szybciej niż otoczenie.
Testy. Środowiska sandbox są darmowe i nie generują prawdziwych kosztów wysyłki. Jeśli chcesz mieć drugą instancję sklepu, żeby testować integracje bez ryzyka dla produkcji, policz 2–5 h miesięcznie na jej utrzymanie — aktualizacje, kopie bazy, odświeżanie danych.
Własny moduł czy płatna wtyczka? Prosta reguła: podziel koszt budowy modułu przez miesięczny abonament wtyczki. Jeśli wychodzi 8–14 miesięcy, własny moduł wygrywa. Dotyczy to głównie nietypowych reguł — np. podziału zamówienia na kilka paczek, osobnych etykiet dla pozycji z różnych magazynów, własnej logiki stanów magazynowych. Przy zwykłym sklepie wtyczka jest tańsza i szybciej się aktualizuje, gdy kurier zmieni API.
Co wchodzi w wycenę: analiza procesu, mapowanie pól, kod lub konfiguracja modułu, testy, wdrożenie na produkcję, dokumentacja i krótkie szkolenie zespołu. Co jest poza: licencje ERP i moduły API po stronie ERP, opłaty kuriera (cennik i dopłaty), prowizje bramki płatniczej, koszt serwera i powiadomień SMS/mailowych. Te pozycje policz osobno — przy dużym obrocie prowizje potrafią w skali roku przewyższyć koszt samego wdrożenia.
Jeśli zamierzasz budować własny moduł do PrestaShop, punktem startu jest dokumentacja deweloperska PrestaShop — struktura modułu, hooki i kolejność wczytywania. Kolejność etapów opisaliśmy też w artykule o integracjach z ERP, płatnościami i kurierami.
Większość prac przy integracjach wykonuje się zdalnie i to jest normalne. Dostęp przez VPN do serwera, SSH, panel sklepu i logi wystarczają, żeby wdrożyć albo naprawić połączenie z ERP, bramką płatniczą czy API kuriera. Odległość między Szczecinem a wykonawcą nie zmienia niczego poza godziną, o której trzeba wstać. Znaczenie mają dwie inne rzeczy: strefa czasowa drugiej strony (jeśli ERP lub helpdesk pracują w innym czasie, okno wsparcia się rozjeżdża) oraz aktualny dostęp do VPN klienta — tokeny wygasają, konta serwisowe bywają blokowane, a 2FA potrafi zatrzymać diagnostykę na kilkadziesiąt minut.
Wizyta na miejscu faktycznie coś wnosi w trzech sytuacjach:
Umowa o opiekę techniczną musi mieć liczby, nie akapity o „elastycznym podejściu”: czas reakcji, czas obejścia problemu, czas naprawy i kanał zgłoszeń — helpdesk z numerem zgłoszenia, a nie mail do prezesa. Monitoring jest częścią SLA: alert, gdy webhooki płatności nie przychodzą dłużej niż 30 minut, gdy kolejka ERP przekracza próg (np. 50 wiadomości) albo rośnie przez 15 minut, gdy cron się nie wykonał, gdy API kuriera zwraca błędy 5xx. Zakres takich prac opisujemy przy usłudze integracje API.
Piątek, 18:00, etykiety się nie generują. Kolejność dla osób nietechnicznych: 1) sprawdź status płatności zamówienia; 2) zaloguj się ręcznie do panelu kuriera i sprawdź, czy działa; 3) sprawdź, czy zamówienie ma status kolejki do wysyłki; 4) wystaw etykietę ręcznie, żeby paczka nie czekała do poniedziałku; 5) zgłoś problem z numerem zamówienia i godziną zdarzenia. Reszta to robota wykonawcy.
| Parametr SLA | Przykładowa wartość | Po co to w umowie |
|---|---|---|
| Czas reakcji (godz. 8–17) | 4 h | Wiesz, kiedy ktoś realnie zacznie patrzeć na zgłoszenie |
| Czas reakcji – awaria krytyczna | 1 h | Sklep bez płatności lub bez etykiet nie sprzedaje |
| Czas obejścia (workaround) | 8 h | Ręczna etykieta lub faktura zamiast czekania do poniedziałku |
| Kanał zgłoszeń | helpdesk / zgłoszenie z numerem | Historia i priorytet zamiast telefonu do prezesa |
| Monitoring | alert: brak webhooka > 30 min, kolejka ERP > 50 | Awaria wychodzi przed klientem, nie po |
Te błędy pojedynczo nie wyglądają groźnie. Kosztują, gdy trwają tygodniami i nikt ich nie mierzy.
Duplikaty zamówień i faktur. Objaw: klient klika „Zapłać” raz, a do ERP wpadają dwa zamówienia i dwie faktury. Przyczyna: brak idempotencji i powtórzony webhook po timeoucie — temat webhooków opisuje dokumentacja WooCommerce. Wykrycie: w bazie sklepu porównaj identyfikator sesji lub transakcji płatności, np. zapytaniem SELECT payment_id, COUNT(*) FROM orders GROUP BY payment_id HAVING COUNT(*) > 1. Każdy wynik to para do sprawdzenia i anulowania w ERP.
Rozjechane stany magazynowe. Objaw: sprzedajesz towar, którego nie ma. Wykrycie: nocny cron (np. 3:00) pobiera liczbę sztuk z ERP i ze sklepu, zapisuje różnice do CSV i wysyła raport mailem, jeśli różnica jest inna niż zero. Dla SKU o wysokiej rotacji tolerancja powinna wynosić zero.
Timeouty API kuriera w szczycie. Objaw: o 16:00 paczki nie mają etykiet, API zwraca 504. Rozwiązanie: nie wołaj API synchronicznie przy składaniu zamówienia — wrzuć zadanie do kolejki (Redis, RabbitMQ) i ponawiaj z rosnącym opóźnieniem (1 s, 2 s, 4 s, 8 s, maksymalnie 5 prób). Magazyn widzi status „w kolejce”, a etykieta pojawia się minutę później, nie nigdy.
Brak centralnego logu. Objaw: „nie wiem, czy zamówienie poszło do ERP”. Rozwiązanie: jeden log ze znacznikiem korelacji (numer zamówienia + identyfikator koszyka) i wpisem na każdym kroku: płatność → sklep → ERP → kurier.
Ciche błędy mapowania. Pole „uwagi do zamówienia” dłuższe niż 255 znaków zostaje ucięte w ERP razem z kodem rabatowym albo numerem paczkomatu. Waliduj długość przed wysyłką i loguj ostrzeżenie.
Testy na produkcji. Objaw: prawdziwe etykiety z prawdziwymi numerami przy testach. Rozwiązanie: sandbox kuriera lub konto testowe i przedrostek KLIENT-TEST w numerze zamówienia. Jak wygląda poprawnie zbudowany przepływ, opisujemy w artykule o integracjach z ERP, płatnościami i kurierami.
| Objaw | Prawdopodobna przyczyna | Gdzie szukać |
|---|---|---|
| Dwa zamówienia na jedno kliknięcie | Powtórzony webhook, brak idempotencji | Tabela orders – duplikat identyfikatora transakcji |
| Sprzedaż towaru, którego nie ma | Rozjazd stanów sklep ↔ ERP | Nocny raport różnic SKU |
| Brak etykiet o 16:00 | Timeout API, wywołanie synchroniczne | Log kolejki, kody 5xx/504 |
| „Nie wiem, czy zamówienie poszło do ERP” | Brak centralnego logu | Szukanie po znaczniku korelacji |
| Klient nie dostał kodu rabatowego | Ucięcie pola > 255 znaków | Log mapowania, długość pola uwagi |
| Prawdziwe etykiety przy testach | Brak środowiska testowego | Konfiguracja konta kurierskiego |
Sklep internetowy jest traktowany jako źródło prawdy o stanach magazynowych, a ERP tylko jako system do faktur.
Jak wykryć: Porównaj stany pięciu losowych produktów w sklepie i w ERP w poniedziałek rano oraz po weekendzie. Jeśli sklep pokazuje więcej sztuk niż ERP, sprzedajesz towar, którego fizycznie może nie być.
Jak naprawić: Ustaw ERP jako system nadrzędny dla stanu magazynowego, a sklep jako kopię, która dostaje aktualizacje po każdym przyjęciu, wydaniu i korekcie. Zablokuj ręczną edycję stanów w panelu sklepu.
Płatność jest obsługiwana tylko po powrocie klienta na stronę sklepu, bez webhooka z serwera bramki.
Jak wykryć: Szukaj zamówień opłaconych, które mają status oczekiwania na płatność, oraz zamówień wysłanych, które okazały się nieopłacone. Klient, który zamknął przeglądarkę po zapłacie, nie wróci na stronę potwierdzenia.
Jak naprawić: Podłącz webhook od bramki jako podstawowe źródło potwierdzenia, a powrót klienta traktuj tylko jako informację pomocniczą. Dodaj zadanie cykliczne, które co 10–15 minut dopyta bramkę o status otwartych transakcji.
Brak automatu do nieudanych i porzuconych płatności — towar zostaje zarezerwowany w ERP na zawsze.
Jak wykryć: Policz w ERP rezerwacje starsze niż 2 godziny. Jeśli jest ich kilkanaście dziennie, magazyn pracuje na danych, które nigdy nie staną się sprzedażą.
Jak naprawić: Ustaw timer: jeśli w ciągu 45–60 minut nie przyjdzie potwierdzenie płatności, integracja zwalnia rezerwację, anuluje zamówienie i wysyła jeden mail z linkiem do dokończenia płatności.
Brak mapowania statusów między trzema słownikami: sklep, ERP i kurier mają własne nazwy etapów zamówienia.
Jak wykryć: Wypisz wszystkie statusy z panelu sklepu i z ERP. Jeśli któryś status sklepu nie ma odpowiednika w ERP lub kurierze, zamówienia będą tam utykać bez obsługi.
Jak naprawić: Zrób jedną tabelę mapowania w formie pliku konfiguracyjnego: status sklepu, status ERP, zdarzenie u kuriera, kto ma reagować. Każda zmiana statusu powinna przechodzić przez tę tabelę, a nie przez kod rozsiany po modułach.
Integracja działa synchronicznie, bez kolejki i bez logów — pierwszy błąd po stronie dostawcy zatrzymuje całą wymianę danych.
Jak wykryć: Sprawdź, czy po awarii API ERP albo bramki płatności zamówienia z danego dnia da się odtworzyć. Jeśli nie ma logu żądań i odpowiedzi, nie ma czego odtworzyć.
Jak naprawić: Wprowadź kolejkę zdarzeń z ponawianiem prób (na przykład 3 próby w odstępach rosnących) oraz log każdego żądania. Dodaj alert mailowy lub SMS, gdy kolejka przekroczy ustaloną liczbę oczekujących zdarzeń.
Etykiety kurierskie są generowane ręcznie, mimo że integracja formalnie istnieje.
Jak wykryć: Zapytaj magazyn, kto i kiedy zmienia status na spakowane. Jeśli odpowiedź brzmi: nikt konkretny, integracja nie ma wyzwalacza i nie działa.
Jak naprawić: Zdefiniuj jedno zdarzenie wyzwalające: zmiana statusu na spakowane tworzy przesyłkę u kuriera i zapisuje numer oraz link do śledzenia w zamówieniu i w ERP. Ręczne generowanie zostaw jako awaryjne, z zapisem w logach.
Integracje z ERP, płatnościami i kurierami w firmie ze Szczecina warto traktować jako trzy warstwy z jasno ustaloną kolejnością: najpierw stany i zamówienia w ERP, potem potwierdzenia płatności przez webhooki, na końcu etykiety i statusy przesyłek. Kluczowa decyzja jest jedna: ERP musi być źródłem prawdy o towarze, a sklep tylko jego kopią. Drugi filar to automat na nieudane płatności — bez niego magazyn blokuje towar, który nigdy nie zostanie sprzedany. Reszta to kwestia wyboru metody wymiany danych i konsekwentnego mapowania statusów. Zobacz też nasz przegląd usług w sekcji Integracje API.
Zacznij od jednej warstwy, która daje największy efekt przy najmniejszym ryzyku — zwykle jest to przepływ zamówień i stanów magazynowych do ERP. Dopiero potem dokładaj płatności i kuriera. Wdrażanie trzech warstw naraz wydłuża projekt i utrudnia znalezienie przyczyny błędu, gdy coś nie zadziała.
Nie zawsze. Większość popularnych systemów dla małych i średnich firm ma albo API, albo możliwość wymiany plików CSV i XML. Wymiana ERP bywa konieczna głównie wtedy, gdy system nie ma żadnego udokumentowanego sposobu wymiany danych ani wsparcia dostawcy. Warto to sprawdzić przed decyzją o wdrożeniu, a nie po.
To zależy od tego, czy sprzedajesz w kilku kanałach jednocześnie. Przy sprzedaży w jednym sklepie wystarcza synchronizacja co 5–15 minut. Jeśli ten sam towar schodzi na marketplace i w sklepie, opóźnienie musi być liczone w sekundach, bo inaczej sprzedasz dwa razy tę samą sztukę.
Nie. Klucz API to dopiero początek — prawdziwa praca polega na obsłudze zdarzeń asynchronicznych: webhooków, zwrotów, ponownych prób i anulowań. Musisz też przewidzieć przypadki, w których bramka nie wyśle webhooka wcale. Dlatego obok webhooka warto mieć zadanie cykliczne, które dopyta o status otwartych transakcji.
Tak, przy prostych scenariuszach wystarczy gotowy moduł integracyjny do PrestaShop lub WooCommerce. Dokumentację techniczną znajdziesz w materiałach PrestaShop Developer Documentation oraz WooCommerce Documentation. Middleware lub własny serwis staje się potrzebny, gdy masz kilka kanałów sprzedaży, niestandardowe reguły cenowe albo wymagania dotyczące niezawodności.
Trzeba mieć wykryty taki przypadek i procedurę: najpierw przywrócenie zamówienia, jeśli towar jest jeszcze dostępny, a jeśli nie — automatyczny zwrot środków. Kluczowe jest, żeby nie zostawiać tego ręcznie na koniec miesiąca. Warto prowadzić listę takich zdarzeń i raz w tygodniu sprawdzać, ile ich było.
Prosta integracja jednej warstwy z gotowym modułem to zwykle kilka dni roboczych. Połączenie sklepu z ERP, bramką płatności i kurierem z mapowaniem statusów to raczej kilka do kilkunastu tygodni, zależnie od liczby niestandardowych przypadków. Największym ryzykiem nie jest samo pisanie kodu, tylko brak dostępu do środowiska testowego ERP i brak osoby po stronie klienta, która podejmuje decyzje.
Jeśli chcesz sprawdzić, którą warstwę warto u siebie wdrożyć w pierwszej kolejności, opisz nam swój sklep, ERP i sposób wysyłki — powiemy wprost, co da się zrobić etapami, a co wymaga większego projektu.