W tym artykule
Ustal jedno źródło prawdy dla stanów magazynowych i połącz webhooki z pollingiem jako mechanizmem kontrolnym. Webhooki reagują na sprzedaż w czasie rzeczywistym, a cykliczny polling wyłapuje rozbieżności, które event nie zgłosił. Taki hybrydowy model synchronizacji stanów e-commerce skraca czas odzwierciedlenia sprzedaży na wszystkich kanałach i realnie obniża ryzyko sprzedania towaru, którego już nie ma na półce.
Krótko mówiąc
- Kluczowe jest wyznaczenie jednego źródła prawdy, aby zapobiec rozbieżnościom w stanach magazynowych, co minimalizuje overselling i poprawia ocenę sprzedawcy.
- Webhooki dają szybkie powiadomienia o zmianach, ale warto je połączyć z pollingiem, by kontrolować spójność i wyłapać błędy, które mogłyby zostać pominięte.
- Synchronizacja powinna działać w modelu hybrydowym, z webhookami obsługującymi delta sync oraz pollingiem wykonywanym co kilka godzin, szczególnie dla towarów z wysokim obrót.
- Wśród najczęstszych błędów są brak jednolitego mapowania identyfikatorów i nieuporządkowana tabela SKU, co powoduje rozbieżności i błędne dane.
- Automatyzacja i centralne zarządzanie wszystkimi kanałami, takimi jak Allegro, WooCommerce i Erli, pozwala ograniczyć ręczną korektę stanów i zmniejszyć liczbę anulowanych zamówień.
Dlaczego synchronizacja stanów magazynowych decyduje o wyniku sklepu
Sklep sprzedający na kilku platformach jednocześnie żyje z tego, że stan magazynowy widziany przez klienta odpowiada rzeczywistości. Gdy Allegro pokazuje 5 sztuk, a w magazynie zostały 2, powstaje overselling. Klient płaci, zamówienie trafia do anulacji, a Ty tracisz coś więcej niż jedną transakcję.
Overselling uderza w oceny sprzedawcy na marketplace’ach, bo anulowane zamówienia obniżają widoczność ofert w wynikach wyszukiwania. To mechanizm, który działa cicho, ale kumuluje się: im więcej anulacji, tym gorsza pozycja oferty, tym mniej ruchu, tym niższa sprzedaż.
Częstotliwość synchronizacji jest tu wprost proporcjonalna do ryzyka. Im rzadziej stany są aktualizowane, tym większe okno, w którym dwóch klientów może kupić ten sam ostatni egzemplarz. Poprawnie skonfigurowana automatyzacja stanów magazynowych eliminuje kilka konkretnych problemów naraz:
- mniej anulowanych zamówień i związanych z nimi zwrotów kosztów wysyłki,
- stabilniejsze oceny sprzedawcy na Allegro, Erli i innych kanałach,
- mniej czasu poświęconego na ręczne poprawki w panelach poszczególnych platform,
- lepsze doświadczenie klienta, który widzi realną dostępność produktu,
- przewidywalniejsze planowanie zakupów i uzupełnień magazynu.
Efektywna synchronizacja danych między systemem magazynowym a kanałami sprzedaży powinna działać zdarzeniowa, a nie w oparciu o codzienne zrzuty wsadowe, bo batchowe aktualizacje raz dziennie prowadzą do rozbieżności i oversellingu już w ciągu kilku godzin od startu dnia sprzedażowego.
Najczęstsze błędy wdrożeń i jak je naprawić
Większość problemów z synchronizacją stanów e-commerce sprowadza się do kilku powtarzalnych błędów. Poniższa checklista pozwala je zdiagnozować i naprawić bez przebudowy całej infrastruktury.
- Brak jednego źródła prawdy. Gdy magazyn, sklep WooCommerce i konto Allegro same decydują, ile sztuk jest dostępne, dane prędzej czy później się rozjadą. Wyznacz jeden system nadrzędny (najczęściej magazyn lub centralny panel zarządzania sprzedażą) i wszystkie kanały niech tylko odczytują z niego wartość dostępną.
- Błędne mapowanie SKU, EAN i identyfikatorów ofert. Ten sam produkt bywa inaczej oznaczony w WooCommerce, inaczej na Allegro i jeszcze inaczej w systemie kurierskim. Zrób jednorazowy audyt mapowania i trzymaj go w jednej tabeli referencyjnej, aktualizowanej przy każdym nowym produkcie.
- Synchronizacja wyłącznie w trybie wsadowym. Jeśli stany aktualizują się raz na godzinę lub raz dziennie, migruj stopniowo do modelu hybrydowego: zacznij od webhooków dla bestsellerów, resztę zostaw na pollingu z krótszym interwałem.
- Brak procedury ręcznej interwencji. Każdy zespół potrzebuje jasnej instrukcji, co zrobić, gdy synchronizacja się zatrzyma: kto sprawdza logi, jak szybko, i kiedy wstrzymać sprzedaż ręcznie na danym kanale.
Porada profesjonalisty
Zanim zaczniesz szukać przyczyny rozjazdu stanów w kodzie integracji, sprawdź najpierw tabelę mapowania identyfikatorów. Ponad połowa zgłaszanych „błędów synchronizacji“ to w praktyce dwa różne produkty podpięte pod ten sam SKU.
Webhooki czy polling: która architektura synchronizacji działa lepiej
Model zdarzeniowy (webhooki) i odpytywanie okresowe (polling) rozwiązują różne problemy, dlatego dobra integracja e-commerce zwykle korzysta z obu naraz, a nie wybiera jednego kosztem drugiego.
Webhook to powiadomienie wysyłane automatycznie w momencie, gdy coś się zmienia, na przykład sprzedaż jednej sztuki produktu. System źródłowy publikuje zdarzenie, a system odbierający natychmiast aktualizuje swój stan. Taki mechanizm daje najniższe możliwe opóźnienie, ale ma jedną słabość: jeśli odbiorca akurat nie działa albo zdarzenie zgubi się po drodze, stan pozostaje nieaktualny, dopóki coś tego nie wykryje.
Tu wchodzi polling, czyli regularne odpytywanie systemu o aktualny stan w ustalonych odstępach czasu. Nie jest tak szybki jak webhook, ale pełni rolę kontrolera spójności: wyłapuje wszystko, co webhook przeoczył, i pozwala odtworzyć poprawny stan po awarii.
Rekomendowany zestaw wygląda następująco:
- webhooki obsługują delta sync, czyli przesyłanie tylko zmian, a nie całego stanu magazynu,
- polling działa jako reconciliacja okresowa, uruchamiana co kilka godzin lub częściej dla asortymentu wysoko rotującego,
- każdy webhook, który nie dotarł, trafia do mechanizmu retry z rosnącym opóźnieniem między próbami (backoff),
- zdarzenia, które nie powiodą się po kilku próbach, lądują w kolejce martwych listów (dead-letter queue) do ręcznego przeglądu.
Delta sync połączony z okresową reconciliacją daje niskie opóźnienia tam, gdzie to ważne, i gwarancję spójności tam, gdzie webhook zawiedzie. Dla asortymentu wolno rotującego interwały rzędu kilku lub kilkunastu minut zwykle wystarczają, ale bestsellery wymagają aktualizacji niemal w czasie rzeczywistym oraz agresywniejszych buforów bezpieczeństwa przypisanych do konkretnego kanału.
Praktyczne wdrożenia integracji z Allegro pokazują typowe interwały: pobieranie zamówień co 1 do 5 minut, a aktualizacja stanów co 15 do 60 minut, w zależności od konfiguracji narzędzia. To rozsądny punkt startowy, jeśli dopiero wdrażasz oprogramowanie do synchronizacji i chcesz najpierw ustabilizować podstawowy przepływ danych, zanim przejdziesz na pełny model zdarzeniowy.
Dokumentacja Allegro jasno definiuje, jak wygląda to od strony technicznej: zmiana stanu oferty przechodzi przez dedykowane endpointy, między innymi PATCH /sale/product-offers/{offerId} oraz PT /sale/offer-quantity-change-commands/{commandId}, a stan magazynowy publikowany jest jako zdarzenie OFFER_STOCK_CHANGED. Ważna uwaga techniczna: przetwarzanie tych zmian jest asynchroniczne, więc integracja musi sprawdzać status zadania po wysłaniu żądania, zamiast zakładać, że aktualizacja zaszła natychmiast.
Mapowanie danych i jedno źródło prawdy w praktyce
Centralne zarządzanie magazynem zaczyna się od rozróżnienia czterech różnych „stanów“, które łatwo pomylić, jeśli traktuje się magazyn jako jedną liczbę.
- Stan fizyczny to liczba sztuk faktycznie leżących na półce lub w magazynie zewnętrznym.
- Stan dostępny to stan fizyczny pomniejszony o rezerwacje i bufory bezpieczeństwa, czyli liczba, którą wolno pokazać klientowi.
- Stan zarezerwowany to sztuki przypisane do złożonego, ale jeszcze nierozliczonego zamówienia.
- Stan zablokowany to towar wyłączony ze sprzedaży, na przykład z powodu reklamacji lub kontroli jakości.
Do marketplace’ów i sklepu powinien trafiać wyłącznie stan dostępny, nigdy surowy stan fizyczny, bo to on odzwierciedla rzeczywistą możliwość sprzedaży, a nie tylko fizyczną obecność towaru.
Tabela mapowania identyfikatorów (SKU, EAN, ID oferty na każdej platformie) powinna żyć w jednym miejscu, najlepiej w systemie centralnym, a nie rozproszona po arkuszach kalkulacyjnych poszczególnych kanałów. Każda zmiana w asortymencie, nowy wariant produktu czy zmiana dostawcy powinna od razu aktualizować ten słownik. Systemy synchronizacji magazynów, które nie mają jasno ustalonego priorytetu źródeł, generują konflikty, gdy dwa systemy jednocześnie próbują nadpisać ten sam stan. Rozwiązaniem jest wersjonowanie: każda aktualizacja stanu nosi znacznik czasu, a wygrywa zawsze najnowsza, potwierdzona wersja.

Wielomagazynowość, rezerwacje i zestawy produktowe
Sklepy korzystające z kilku magazynów lub łączące własny stok z magazynem zewnętrznym muszą dodatkowo rozwiązać problem agregacji dostępności. Współpraca z operatorem logistycznym, na przykład firmą typu 3PL, wymaga jasnych reguł, z którego magazynu realizowane jest dane zamówienie i jak często stan stamtąd trafia do centralnego systemu.
- Zdefiniuj politykę rozdziału zamówień. Ustal, czy priorytet ma magazyn najbliższy klientowi, magazyn z najwyższym stanem, czy magazyn, który kończy dzień roboczy najpóźniej.
- Zsumuj stany ze wszystkich lokalizacji do jednej wartości dostępnej. Klient nie musi wiedzieć, że produkt leży w trzech różnych miejscach, potrzebuje tylko wiedzieć, że jest dostępny.
- Obsłuż zestawy (BOM) kaskadowo. Sprzedaż zestawu złożonego z trzech komponentów musi natychmiast odjąć odpowiednią liczbę sztuk każdego komponentu z osobna, inaczej jeden ze składników zniknie z magazynu niezauważenie.
- Ustaw bufory bezpieczeństwa per kanał. Kanał o wolniejszej synchronizacji (na przykład raz na 30 minut) powinien mieć wyższy bufor, na przykład 2 do 3 sztuk odjęte od realnego stanu, podczas gdy kanał z webhookami może pracować niemal bez bufora.
Jak monitorować synchronizację i szybko naprawiać awarie
Logi synchronizacji i częstotliwość ich przeglądania decydują o tym, jak szybko wykryjesz problem, zanim zauważy go klient. Trzy metryki warto obserwować stale: opóźnienie między zdarzeniem a jego odzwierciedleniem w kanale, odsetek nieudanych aktualizacji oraz drift, czyli narastającą różnicę między stanem w systemie centralnym a stanem widocznym na marketplace.
- Prowadź logi audytowe każdej zmiany stanu z datą, źródłem i wynikiem operacji.
- Kieruj nieudane aktualizacje do kolejki martwych listów zamiast je po cichu odrzucać.
- Ustaw automatyczny retry z rosnącym opóźnieniem, a po określonej liczbie prób wysyłaj powiadomienie do zespołu.
- Traktuj rosnący drift jako sygnał alarmowy, nie kosmetyczną niedokładność.
Czekanie, aż różnica urośnie do kilkunastu procent, oznacza, że overselling już się zdarzył, zanim zdążyłeś zareagować.*
Jak Berlinetta rozwiązuje synchronizację stanów w praktyce
Ręczne łączenie webhooków, pollingu i tabel mapowania ma sens, gdy sprzedajesz na jednym kanale. Przy kilku sklepach i marketplace’ach jednocześnie ta sama logika zaczyna wymagać osobnego zespołu do utrzymania integracji.
Berlinetta łączy Allegro, Erli, WooCommerce w jednym panelu, dzięki czemu stan magazynowy ma jedno źródło prawdy z definicji, a nie w wyniku dodatkowej konfiguracji. System realizuje praktycznie ten sam model, który opisaliśmy wyżej: aktualizacje w czasie zbliżonym do rzeczywistego tam, gdzie to możliwe, oraz kontrola spójności w tle.
Konkretne elementy, które wspierają poprawną synchronizację stanów magazynowych:
- centralny magazyn i wizualny plan rozmieszczenia towaru, widoczny niezależnie od tego, z którego kanału przyszło zamówienie,
- reguły automatyzacji, które same reagują na spadek stanu poniżej ustalonego progu,
- obsługa siedmiu firm kurierskich z jednego panelu, bez przełączania się między systemami przewoźników,
- generowanie faktur zgodnych z KSeF, co ma znaczenie już teraz, bo KSeF 2.0 wprowadza od 1 lutego 2026 roku nową strukturę FA(3) i etapowy obowiązek integracji.
Przejście na gotowy system zarządzania sprzedażą wielokanałową ma sens w momencie, gdy liczba ręcznych poprawek stanów zaczyna zajmować więcej czasu niż sama obsługa zamówień.
Priorytety wdrożeniowe według zespołu Berlinetta obejmują etapowe podejście rozpoczynające się od mapowania SKU i wyboru jednego źródła prawdy, następnie obsługę rezerwacji i wdrożenie webhooków, a ostatecznie ustawienie cyklicznej reconciliacji jako zabezpieczenia. Krótkoterminową miarą sukcesu jest zmniejszenie liczby anulowanych zamówień z powodu braku towaru
- Zespół Berlinetta
Zobacz integracje i zacznij od bezpłatnego okresu próbnego
Ręczne łączenie webhooków, pollingu i tabel mapowania SKU, które opisaliśmy wyżej, można zbudować samodzielnie, ale to projekt na tygodnie pracy zespołu deweloperskiego. Berlinetta daje gotowy, działający od razu odpowiednik tego modelu: centralne zarządzanie magazynem, ofertami i zamówieniami z Allegro, Erli i WooCommerce w jednym panelu, bez wdrożenia i bez pisania własnej integracji.

Zacznij od przeglądu dostępnych integracji, w tym stron poświęconych Erli, żeby sprawdzić, czy Twoje kanały sprzedaży są już obsługiwane. Plany subskrypcji zaczynają się od Berlinetty 250 w cenie 89 zł miesięcznie (lub 890 zł przy rozliczeniu rocznym), a większe sklepy mogą wybrać wyższe warianty, aż po Berlinettę Enterprise z ceną ustalaną indywidualnie. Umów demo lub uruchom bezpłatny okres próbny na stronie głównej Berlinetty i sprawdź, jak wygląda synchronizacja stanów e-commerce, gdy jedno źródło prawdy działa od pierwszego dnia.



