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.
| Sytuacja | Co pokazuje ERP | Co jest naprawdę | Skutek dla firmy |
|---|---|---|---|
| Zamówienie w sklepie internetowym | 5 sztuk dostępnych | 0 sztuk - wydane rano, nie zaimportowane | Anulowane zamówienie, zwrot płatności, utracony klient |
| Dwa zamówienia B2B w tej samej godzinie | 40 sztuk, obie rezerwacje po 30 przechodzą | 40 sztuk, ale tylko jedna rezerwacja jest wykonalna | Częściowa wysyłka, kara umowna, telefon do handlowca |
| Uruchomienie zlecenia produkcyjnego | 200 kg materiału | 50 kg - reszta pobrana na poprzedniej zmianie | Przestój linii i drogi zakup ekspresowy |
| Zamówienie u dostawcy | Stan poniżej minimum, choć dostawa już jest na regale | Towar przyjęty w WMS, PZ czeka na zaksięgowanie | Podwó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ł.
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.
| Parametr | Import raz na dobę | Synchronizacja co 15-60 min | Zdarzeniowo (czas rzeczywisty) |
|---|---|---|---|
| Opóźnienie stanu w ERP | Do 24 godzin | Do 15-60 minut | Kilka sekund |
| Ryzyko sprzedaży z braku | Wysokie przy każdym szybko rotującym indeksie | Średnie, rośnie w szczycie sprzedaży | Niskie, ogranicza się do błędów fizycznych |
| Obciążenie systemów | Jeden duży import, często w nocy | Regularne pełne odpytywanie, także gdy nic się nie zmieniło | Małe komunikaty, tylko gdy coś się dzieje |
| Zachowanie przy awarii | Nieudany import = cała doba bez aktualizacji | Pominięty cykl nadrabia kolejny | Zdarzenia czekają w kolejce i wracają po awarii |
| Ślad audytowy | Tylko stan końcowy | Stan końcowy co cykl | Każdy ruch z godziną, lokalizacją i partią |
| Kiedy wystarcza | Jeden kanał sprzedaży, wolna rotacja | Kilka kanałów, umiarkowany ruch | Sklep, 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.
| Element | Rola w aktualizacji stanów | Efekt biznesowy |
|---|---|---|
| Terminale ze skanerem | Rejestrują ruch w chwili zdarzenia | Brak przepisywania, brak opóźnienia po stronie magazynu |
| Etykiety GS1 (EAN, SSCC) | Jednoznacznie identyfikują towar, partię i nośnik | Mniej pomyłek przy przyjęciu i kompletacji |
| Webhook w WMS | Wysyła zdarzenie bez czekania na zapytanie | Opóźnienie liczone w sekundach, a nie minutach |
| API lub baza ERP | Pozwala zapisać ruch i dokument bez operatora | Stan 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ów | Porównuje pełne stany obu systemów | Rozjazdy 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
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.
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.
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