Start / Baza wiedzy / Zarządzanie stanami magazynowymi w czasie rzeczywistym - integracja WMS z ERP

Zarządzanie stanami magazynowymi w czasie rzeczywistym - integracja WMS z ERP

Spis treści
Co się psuje, gdy stan magazynowy w ERP jest nieaktualny?
Czym różni się zarządzanie stanami magazynowymi w czasie rzeczywistym od okresowej synchronizacji?
Jakie wymagania technologiczne musi spełnić aktualizacja stanów w czasie rzeczywistym?
Jaki efekt biznesowy daje zarządzanie stanami magazynowymi w czasie rzeczywistym?
FAQ
Podsumowanie

Co się psuje, gdy stan magazynowy w ERP jest nieaktualny?

Zarządzanie stanami magazynowymi w czasie rzeczywistym rozwiązuje trzy problemy, które pojawiają się, gdy ERP dostaje stany z opóźnieniem. Chodzi o sprzedaż towaru, którego już nie ma, podwójną rezerwację tej samej partii i przestój produkcji z powodu brakującego materiału. Wszystkie trzy zaczynają się w tym samym miejscu - w oknie między skanem w magazynie a zapisem w ERP.

W wielu firmach to okno trwa od kilku godzin do doby. WMS wie o wydaniu od razu. ERP dowiaduje się o nim dopiero przy nocnym imporcie pliku albo wtedy, gdy ktoś na koniec zmiany zamknie dokumenty. Przez ten czas handlowiec, sklep internetowy i planista produkcji widzą stan z rana. Liczby nie były błędne w chwili zapisu. Po prostu się zestarzały.

Sprzedaż towaru, którego już nie ma

Klient zamawia w sklepie internetowym ostatnie 5 sztuk, które według ERP leżą na półce. W rzeczywistości magazyn wydał je dwie godziny wcześniej odbiorcy hurtowemu, a wydanie czeka na wieczorny import. Zamówienie przechodzi, płatność też. Brak wychodzi dopiero przy kompletacji, a obsługa klienta musi przepraszać albo zwracać pieniądze.

Koszt nie kończy się na jednym anulowanym zamówieniu. Według badania Corstena i Gruena, przytoczonego przez ECR Retail Loss, 27% klientów, którzy nie zastaną towaru, kupuje go w innym sklepie. Kolejne 9% rezygnuje z zakupu całkowicie. Łącznie to 36% przypadków, w których sprzedaż przepada w całości. Badanie dotyczyło handlu detalicznego, ale w B2B działa podobny odruch. Odbiorca, który dostał potwierdzenie, a potem informację o braku, przy następnym zamówieniu zapyta też konkurencję.

Podwójna rezerwacja tej samej partii

Dwóch handlowców przyjmuje w tej samej godzinie zamówienia na ten sam towar. Każdy widzi w ERP 40 sztuk dostępnych i każdy rezerwuje 30. System nie protestuje, bo rezerwacje liczą się od stanu, który nie uwzględnia jeszcze porannego wydania z WMS. Konflikt wychodzi dopiero na rampie: jedna wysyłka jedzie pełna, druga częściowa albo wcale.

Przy towarach z partią, datą ważności lub numerem seryjnym sprawa jest poważniejsza. Nie wystarczy dowieźć „tego samego produktu”, bo klient zamówił konkretną partię, często z certyfikatem. W kontraktach B2B taki rozjazd oznacza karę umowną albo przesunięcie produkcji u odbiorcy. Kosztuje więc więcej niż sama wartość brakujących sztuk.

Przestój produkcji przez brak materiału

W firmie produkcyjnej nieaktualny stan uderza w plan. Planista uruchamia zlecenie, bo ERP pokazuje 200 kg granulatu. Tymczasem 150 kg zeszło już na poprzedniej zmianie, a pobranie zapisano tylko na kartce przy maszynie. Linia staje w połowie zlecenia, a zakupy zamawiają materiał w trybie ekspresowym, zwykle drożej.

Jeśli rozliczasz pobrania ważeniem, warto spiąć wagi bezpośrednio z systemem. Opisaliśmy to w tekście o integracji wag przemysłowych i czytników RFID z ERP. Aktualne stany są też warunkiem, żeby planowanie produkcji dawało harmonogram, który da się wykonać. Plan zbudowany na stanie sprzed 10 godzin jest planem na wczoraj.

SytuacjaCo pokazuje ERPCo jest naprawdęSkutek dla firmy
Zamówienie w sklepie internetowym5 sztuk dostępnych0 sztuk - wydane rano, nie zaimportowaneAnulowane zamówienie, zwrot płatności, utracony klient
Dwa zamówienia B2B w tej samej godzinie40 sztuk, obie rezerwacje po 30 przechodzą40 sztuk, ale tylko jedna rezerwacja jest wykonalnaCzęściowa wysyłka, kara umowna, telefon do handlowca
Uruchomienie zlecenia produkcyjnego200 kg materiału50 kg - reszta pobrana na poprzedniej zmianiePrzestój linii i drogi zakup ekspresowy
Zamówienie u dostawcyStan poniżej minimum, choć dostawa już jest na regaleTowar przyjęty w WMS, PZ czeka na zaksięgowaniePodwójne zamówienie i zamrożona gotówka

Skala zjawiska jest globalna. IHL Group w badaniu z 2025 r., omówionym przez British Retail Consortium, szacuje straty z tzw. zniekształceń zapasów, czyli braków i nadwyżek, na 1,7 bln dolarów rocznie. Same puste półki to według tego badania 690,9 mld dolarów. Nie każdy brak wynika z opóźnionej synchronizacji. Ale każdy brak, którego system nie pokazał na czas, trafia właśnie do tej statystyki.

Czym różni się zarządzanie stanami magazynowymi w czasie rzeczywistym od okresowej synchronizacji?

Zarządzanie stanami magazynowymi w czasie rzeczywistym to model, w którym każde zdarzenie w magazynie - przyjęcie, przesunięcie, pobranie, wydanie - trafia do ERP w chwili skanu, jako osobny komunikat. Okresowa synchronizacja przesyła natomiast cały stan albo paczkę zmian co ustalony czas, np. co godzinę lub raz na dobę.

Różnica nie polega tylko na częstotliwości. Synchronizacja okresowa nadpisuje stan w ERP „zdjęciem” z WMS. Model zdarzeniowy przekazuje każdy ruch osobno, z ilością, lokalizacją, partią i godziną. Dzięki temu ERP zna nie tylko aktualną liczbę, ale też jej historię. Każdy rozjazd można odtworzyć ruch po ruchu, zamiast zgadywać, kiedy powstał.

Wydanie zeskanowane o 9:05 - kiedy zobaczy je ERP? 9:05 skan w WMS Import raz na dobę plik o 22:00 ok. 13 h sprzedaży na nieaktualnym stanie 22:00 Synchronizacja co godzinę najpóźniej 10:00 - do 60 min opóźnienia Zdarzeniowo webhook + kolejka 9:05 - ERP widzi wydanie po kilku sekundach 6:00 9:00 12:00 15:00 18:00 21:00 24:00 Szare pole - czas, w którym sprzedaż i planowanie widzą stan sprzed wydania.

Oś czasu pokazuje, ile trwa „okno ślepoty”. Przy imporcie o 22:00 wydanie zeskanowane o 9:05 przez 13 godzin nie istnieje dla sprzedaży. Synchronizacja godzinowa skraca to okno do 60 minut. W szczycie sprzedaży, np. w czasie promocji, to wciąż wystarczająco długo, żeby ostatnie sztuki sprzedały się dwa razy. W modelu zdarzeniowym okno spada do kilku sekund.

ParametrImport raz na dobęSynchronizacja co 15-60 minZdarzeniowo (czas rzeczywisty)
Opóźnienie stanu w ERPDo 24 godzinDo 15-60 minutKilka sekund
Ryzyko sprzedaży z brakuWysokie przy każdym szybko rotującym indeksieŚrednie, rośnie w szczycie sprzedażyNiskie, ogranicza się do błędów fizycznych
Obciążenie systemówJeden duży import, często w nocyRegularne pełne odpytywanie, także gdy nic się nie zmieniłoMałe komunikaty, tylko gdy coś się dzieje
Zachowanie przy awariiNieudany import = cała doba bez aktualizacjiPominięty cykl nadrabia kolejnyZdarzenia czekają w kolejce i wracają po awarii
Ślad audytowyTylko stan końcowyStan końcowy co cyklKażdy ruch z godziną, lokalizacją i partią
Kiedy wystarczaJeden kanał sprzedaży, wolna rotacjaKilka kanałów, umiarkowany ruchSklep, marketplace i B2B na tym samym stanie, produkcja

Nie każda dana potrzebuje czasu rzeczywistego. Kartoteki towarów, cenniki i dane kontrahentów zmieniają się rzadko i mogą spokojnie płynąć cyklicznie. Real-time opłaca się tam, gdzie stan zmienia się szybko i jest sprzedawany w kilku kanałach naraz. Pełny podział strumieni danych między systemami, łącznie z zamówieniami, awizacjami i wysyłkami, opisaliśmy w szerszym artykule o integracji ERP z systemem WMS.

W praktyce najlepiej sprawdza się model mieszany. Ruchy towaru płyną zdarzeniowo, a raz na dobę system automatycznie porównuje pełne stany obu stron. Takie uzgodnienie wyłapuje rozjazdy, których zdarzenia nie wyjaśnią, np. ręczną korektę wpisaną w ERP z pominięciem magazynu. Efekt: rozjazd wykrywasz następnego ranka, a nie przy kwartalnej inwentaryzacji.

Jakie wymagania technologiczne musi spełnić aktualizacja stanów w czasie rzeczywistym?

Aktualizacja stanów w czasie rzeczywistym wymaga trzech warstw: skanerów, które rejestrują ruch w chwili zdarzenia, API po stronie WMS i ERP oraz kolejki zdarzeń, która pilnuje, żeby żaden komunikat nie zginął. Brak którejkolwiek z nich sprowadza integrację z powrotem do synchronizacji okresowej, nawet jeśli formalnie „działa online”.

Skanery i identyfikacja towaru

Stan nie będzie aktualny szybciej, niż zostanie zarejestrowany. Jeśli magazynier wydaje towar z kartki, a dokument wpisuje godzinę później, żadna integracja tego nie nadrobi. Dlatego pierwszym elementem są terminale mobilne ze skanerem, np. urządzenia Zebra, i etykiety z kodami w standardzie GS1. Każdy skan od razu staje się zdarzeniem z ilością, lokalizacją i numerem partii. Znika przepisywanie, a z nim opóźnienie i literówki w ilościach.

Z takich zdarzeń ERP może sam tworzyć dokumenty, bez udziału operatora. Pokazaliśmy to krok po kroku w tekście o automatyzacji dokumentów magazynowych WZ i PZ w ERP. Efekt dla księgowości jest taki, że dokument powstaje w tej samej minucie co ruch towaru, a nie następnego dnia.

API po stronie ERP i WMS

Drugi warunek to możliwość zapisu do ERP z zewnątrz. Comarch ERP XL udostępnia do tego rozbudowane API i dobrze znosi duży wolumen dokumentów. W WAPRO Mag integrację buduje się zwykle na narzędziach producenta albo bezpośrednio na bazie SQL. W obu przypadkach stan zmienia się automatycznie, a nie po tym, jak ktoś kliknie „zatwierdź”.

Po stronie WMS liczy się, czy system sam wyśle powiadomienie o zdarzeniu, czy trzeba go regularnie odpytywać. Pierwszy wariant to webhook i to on daje opóźnienie liczone w sekundach. Drugi to cykliczne zapytania do API, czyli w praktyce synchronizacja okresowa z krótszym interwałem. Różnice między tymi podejściami opisaliśmy w artykule webhook a API - różnice i integracja systemów.

Kolejka zdarzeń

Trzeci element jest najmniej widoczny, a decyduje o niezawodności. Kolejka komunikatów, np. RabbitMQ albo Apache Kafka, przyjmuje zdarzenia z WMS i przekazuje je do ERP w kolejności, w jakiej wystąpiły. Gdy ERP jest akurat niedostępny, np. w czasie aktualizacji, zdarzenia czekają w kolejce. Po powrocie systemu stan sam się wyrównuje, bez ręcznego szukania brakujących dokumentów.

Dobrze zaprojektowana kolejka spełnia trzy warunki:

  • Idempotencja - to samo zdarzenie przetworzone dwa razy nie zdejmuje stanu dwa razy. Chroni to przed fikcyjnymi brakami po ponowieniu komunikatu.
  • Zachowana kolejność - przyjęcie zawsze zostaje zapisane przed wydaniem tej samej partii. Dzięki temu stan nie spada chwilowo poniżej zera i nie blokuje sprzedaży.
  • Monitoring i alerty - komunikat, którego nie da się przetworzyć, trafia do osobnej kolejki i wywołuje powiadomienie. Błąd poprawiasz w kilka minut, zanim zauważy go klient.
ElementRola w aktualizacji stanówEfekt biznesowy
Terminale ze skaneremRejestrują ruch w chwili zdarzeniaBrak przepisywania, brak opóźnienia po stronie magazynu
Etykiety GS1 (EAN, SSCC)Jednoznacznie identyfikują towar, partię i nośnikMniej pomyłek przy przyjęciu i kompletacji
Webhook w WMSWysyła zdarzenie bez czekania na zapytanieOpóźnienie liczone w sekundach, a nie minutach
API lub baza ERPPozwala zapisać ruch i dokument bez operatoraStan i dokument zmieniają się jednocześnie
Kolejka zdarzeńPrzechowuje komunikaty, gdy ERP jest niedostępnyŻaden ruch nie ginie po awarii lub aktualizacji
Dzienne uzgodnienie stanówPorównuje pełne stany obu systemówRozjazdy wykryte w dobę, a nie przy inwentaryzacji

Dobór tych elementów zależy od tego, jakie systemy już działają w firmie i czy WMS jest własny, czy prowadzi go operator logistyczny. Taki dobór, razem z budową warstwy integracyjnej, to zakres naszej usługi integracji systemów ERP, CRM, WMS i MES.

Jaki efekt biznesowy daje zarządzanie stanami magazynowymi w czasie rzeczywistym?

Zarządzanie stanami magazynowymi w czasie rzeczywistym daje dwa główne efekty: mniej pomyłek sprzedażowych i trafniejsze planowanie zakupów. Sprzedaż przestaje obiecywać towar, który już wyjechał, a zakupy liczą zapotrzebowanie od prawdziwego stanu. Oba efekty da się zmierzyć już w pierwszym miesiącu po uruchomieniu.

Poniższe wyliczenia to przykłady. Podstaw własne liczby, żeby zobaczyć skalę u siebie:

  • Mniej anulowanych zamówień - przy 400 zamówieniach dziennie i 1% anulacji z powodu braku to 4 zamówienia dziennie, czyli około 80 miesięcznie. Przy średniej wartości 600 zł to 48 tys. zł sprzedaży miesięcznie, z której część odchodzi do konkurencji na stałe.
  • Koniec podwójnych rezerwacji - rezerwacja zdejmuje stan dostępny w chwili zapisu, a każdy handlowiec widzi to samo. Znikają częściowe wysyłki i rozmowy z klientem o tym, „czyje zamówienie było pierwsze”.
  • Trafniejsze zakupy - zapotrzebowanie liczy się automatycznie od aktualnego stanu i minimów. Jeśli dziś trzymasz zapas bezpieczeństwa na 2 tygodnie, bo nie ufasz stanom, a przy wiarygodnych danych wystarczy tydzień, uwalniasz połowę gotówki zamrożonej w tym zapasie.
  • Produkcja bez niespodzianek - zlecenie rusza tylko wtedy, gdy materiał fizycznie jest na stanie. Mniej przestojów linii i mniej zakupów ekspresowych z dopłatą za szybką dostawę.

Punkt o zakupach daje najwięcej, gdy zapotrzebowanie trafia do dostawcy bez ręcznego przepisywania. Jak to zbudować, opisaliśmy w tekście o automatyzacji zamówień u dostawców w ERP. Aktualny stan plus automatyczne zamówienie to mniej braków i mniej nadwyżek jednocześnie.

Podobny mechanizm widać w jednym z projektów opisanych w naszych case studies. Firma produkcyjna z branży reklamy wielkoformatowej pracowała na systemie ERP i sklepie internetowym, a status zamówień krążył między 6 działami przez maile i telefony. Zbudowaliśmy aplikację, która synchronizuje zamówienia z obu systemów i pokazuje 14 statusów w czasie rzeczywistym. Wysyłkę zamyka skan kodu kreskowego po potwierdzeniu każdej pozycji. Efekt: każdy dział widzi aktualny stan swojego obszaru bez dopytywania, a paczka nie wyjdzie bez kontroli kompletności.

Zanim zdecydujesz o zakresie projektu, policz, ile kosztuje Cię dziś okno opóźnienia. Zsumuj anulowane zamówienia, ekspresowe dostawy materiału i godziny spędzone na wyjaśnianiu rozjazdów. Prostą metodę opisaliśmy w artykule o tym, jak policzyć ROI z automatyzacji procesów w firmie. Wynik da Ci konkretną kwotę, z którą porównasz koszt integracji.

FAQ

Czy aktualizacja stanów w czasie rzeczywistym wymaga wymiany ERP?

Nie, jeśli ERP pozwala na zapis z zewnątrz przez API, bazę danych lub narzędzia producenta. Taką możliwość mają m.in. Comarch ERP XL i WAPRO Mag. Wymiana ma sens dopiero wtedy, gdy system nie udostępnia żadnego sposobu wymiany danych.

Jak szybko stan w ERP aktualizuje się w modelu zdarzeniowym?

Zwykle w ciągu kilku sekund od skanu w magazynie. Gdy ERP jest chwilowo niedostępny, zdarzenia czekają w kolejce i są przetwarzane po powrocie systemu, w kolejności, w jakiej wystąpiły.

Czy przy stanach w czasie rzeczywistym nadal potrzebna jest inwentaryzacja?

Tak. Integracja usuwa opóźnienia, ale nie wykryje kradzieży, uszkodzeń ani towaru odłożonego w złe miejsce. Inwentaryzacja ciągła w WMS pozwala jednak liczyć stany partiami, bez zatrzymywania magazynu.

Podsumowanie

Nieaktualny stan magazynowy rzadko wygląda jak awaria. To raczej seria drobnych zdarzeń: anulowane zamówienie, paleta obiecana dwóm klientom, linia czekająca na materiał. Łączy je jedna przyczyna - czas między skanem w magazynie a zapisem w ERP. Skróć go do sekund, a sprzedaż, zakupy i produkcja zaczną pracować na tych samych liczbach co magazyn. Na początek wybierz indeksy sprzedawane w kilku kanałach naraz i porównaj liczbę anulacji miesiąc przed i miesiąc po zmianie.

Chcesz sprawdzić, ile kosztuje Cię dziś opóźnienie stanów między magazynem a ERP? Umów bezpłatną, 30-minutową konsultację. Przejrzymy razem, jak płyną dziś dane o ruchach towaru, i wskażemy miejsce, w którym okno opóźnienia kosztuje Cię najwięcej.

O autorze
Kamil Zazula - założyciel i konsultant ds. automatyzacji procesów biznesowych i integracji systemów w Devesol. Od kilku lat pomaga polskim firmom wdrażać automatyzacje i Agentów AI. Opiera się przy tym na doświadczeniu zdobytym wcześniej jako programista aplikacji webowych. Więcej o autorze: devesol.pl/o-nas

Masz proces, który zjada czas Twojego zespołu?

Zobaczmy na bezpłatnej konsultacji, czy da się go zautomatyzować i ile realnie zaoszczędzisz.

Umów bezpłatną konsultację