Pilna sprawa ze sklepem? 573 003 991 kontakt@edukowski.pl pon.–pt. 8:00–16:00
Marketplace · 8 min czytania

Jeden magazyn, pięć kanałów: jak nie sprzedać dwa razy tej samej sztuki

Rezerwacje, bufory, priorytety kanałów i częstotliwość synchronizacji. Mechanika, która trzyma stany w ryzach, gdy ten sam towar sprzedajesz w sklepie, na Allegro, Empiku, Kauflandzie i w hurcie.

Eryk Dukowski
Eryk Dukowski
· aktualizacja 2.11.2026
Marketplace
Jeden magazyn, pięć kanałów.
Baza wiedzy EDUKOWSKI

Nadsprzedaż wygląda zawsze tak samo. Ostatnia sztuka leży na półce, a w ciągu kwadransa kupuje ją klient na Allegro i klient w sklepie. Jednemu trzeba odmówić, zwrócić pieniądze i przyjąć negatywną opinię. Przy pięciu kanałach i kilku tysiącach produktów takie sytuacje nie są wypadkiem, tylko statystyką. Da się je sprowadzić prawie do zera, ale nie samą „synchronizacją”. Potrzebne są cztery mechanizmy, które opisujemy poniżej.

W skrócie

  • Jedno źródło stanu dostępnego: stan magazynowy minus rezerwacje minus bufor. Każdy kanał dostaje tę liczbę, nie surowy stan z półki.
  • Rezerwacja powstaje w chwili złożenia zamówienia, nie w chwili opłacenia. Inaczej okno na podwójną sprzedaż trwa tyle, co czas na płatność.
  • Priorytety kanałów rozstrzygają, kto dostaje ostatnie sztuki: zwykle kanał z najwyższą marżą lub najsurowszymi karami za anulowanie.
  • Synchronizacja co 5 minut przy przerwach w działaniu nic nie daje. Monitoruj ją i miej plan na awarię, nie tylko harmonogram.

Dlaczego sama synchronizacja nie wystarcza

Większość sprzedawców rozumie synchronizację tak: co kilka minut system odczytuje stan z magazynu i wysyła go do każdego kanału. To konieczne, ale nie wystarczy. Między dwoma odczytami jest okno, w którym każdy kanał widzi tę samą ostatnią sztukę. Jeśli odczyt jest co 10 minut, okno trwa do 10 minut. Przy produkcie, który sprzedaje się raz w tygodniu, to nic. Przy promocji na Allegro, gdzie ta sama sztuka schodzi w 30 sekund, to pewna nadsprzedaż.

Druga luka to definicja stanu. Program magazynowy pokazuje 10 sztuk, ale 3 są zarezerwowane pod zamówienie telefoniczne, 2 czekają na kompletację, a 1 jest uszkodzona i czeka na reklamację do dostawcy. Sklep dostaje „10” i sprzedaje coś, czego fizycznie nie można wysłać.

Mechanizm 1: stan dostępny, nie stan z półki

Do kanałów powinna iść jedna liczba, którą nazywamy stanem dostępnym. Liczy się ją tak: stan magazynowy minus rezerwacje pod zamówienia niewysłane minus towar zablokowany (reklamacje, uszkodzenia, kontrola jakości) minus bufor. Ta liczba jest zawsze mniejsza lub równa temu, co leży na półce, i tylko ona ma prawo trafić do sklepu, Allegro, Empiku czy Kauflandu.

Kto ją liczy, zależy od układu systemów. Jeśli ERP (Subiekt, Optima, enova) jest źródłem stanów, to on musi odjąć rezerwacje i wystawić stan dostępny dla systemu OMS. Jeśli stany prowadzi BaseLinker, robi to on. Błąd, który widzimy najczęściej: ERP wysyła surowy stan, BaseLinker odejmuje tylko własne zamówienia, a rezerwacje z hurtu i sklepu stacjonarnego nikt nie odejmuje.

SkładnikSkądCo się dzieje, gdy go pominiesz
Stan magazynowyERP lub WMSpunkt wyjścia, bez niego nic nie działa
Rezerwacje pod zamówieniaOMS, ERP, zamówienia telefoniczne i hurtowesprzedajesz towar odłożony dla innego klienta
Towar zablokowanyreklamacje, kontrola jakości, uszkodzeniasprzedajesz sztukę, której nie wolno wysłać
Buforustawienie na produkt lub kategorięostatnia sztuka sprzedaje się w dwóch kanałach jednocześnie
Stan dostępnywynik odejmowaniato jedyna liczba, która idzie do kanałów

Mechanizm 2: rezerwacja w chwili zamówienia

Zamówienie złożone, ale jeszcze nieopłacone, już blokuje towar. Jeśli rezerwacja powstaje dopiero po wpłynięciu płatności, okno na podwójną sprzedaż trwa tyle, co czas na zapłatę: od kilku minut przy BLIKu do kilku dni przy przelewie tradycyjnym. W tym czasie ostatnia sztuka jest nadal widoczna wszędzie.

Rezerwacja musi mieć termin wygaśnięcia. Zamówienie nieopłacone przez 2 godziny przy płatności online albo 3 dni przy przelewie zwalnia towar automatycznie. Bez tego koszyki porzucone z wybraną płatnością przelewem zablokują stan na stałe, a Ty będziesz miał „brak towaru” przy pełnej półce.

Co z zamówieniami spoza systemu

Zamówienie telefoniczne, mail od stałego klienta hurtowego, sprzedaż w sklepie stacjonarnym. Wszystkie muszą trafić do tego samego systemu, który liczy rezerwacje, nawet jeśli oznacza to wpisanie zamówienia ręcznie do BaseLinkera lub ERP. Zasada jest prosta: jeśli towar zmienia właściciela albo jest obiecany, system o tym wie w ciągu minut, nie na koniec dnia.

Mechanizm 3: bufory

Bufor to liczba sztuk, które ukrywasz przed kanałami, choć leżą na półce. Chroni przed oknem między synchronizacjami i przed błędami inwentaryzacji. Nie ustawiaj jednego bufora dla wszystkiego. Przy produkcie, którego masz 400 sztuk, bufor 2 nic nie kosztuje. Przy produkcie, którego masz 3 sztuki, bufor 2 oznacza, że sprzedajesz jedną.

  • Towar szybko rotujący, wysoki stan: bufor 2–5 sztuk albo 2–3% stanu.
  • Towar drogi, niski stan: bufor 1 sztuka lub 0, ale synchronizacja natychmiastowa po każdym zamówieniu.
  • Towar z zewnętrznego magazynu dostawcy (dropshipping): bufor większy, 5–10 sztuk, bo stan dostawcy aktualizuje się rzadziej i nie masz nad nim kontroli.
  • Produkty w kompletach: dostępność kompletu liczona z najniższego stanu składnika, z buforem na składnik.

Bufor można też różnicować per kanał. Na kanale, który karze za anulowanie najmocniej, ukrywasz więcej. We własnym sklepie, gdzie anulowanie kosztuje tylko przeprosiny, możesz pokazać wszystko.

Mechanizm 4: priorytety kanałów

Gdy dwa zamówienia na ostatnią sztukę przyjdą w tym samym oknie, ktoś musi przegrać. Lepiej, żeby decydowała reguła, a nie to, kto pierwszy zauważy. Priorytet ustala, który kanał dostaje towar, a którego zamówienie trafia do kolejki „do wyjaśnienia”. Zwykle wygrywa kanał, gdzie anulowanie kosztuje najwięcej: Allegro z wpływem na jakość sprzedaży, Empik z limitem 12 godzin na potwierdzenie. Własny sklep przegrywa, bo tam masz kontakt z klientem i możesz zaproponować zamiennik.

Priorytet działa też w drugą stronę, przy niskim stanie. Gdy stan dostępny spada poniżej progu, np. 3 sztuk, możesz automatycznie wyłączyć ofertę na kanałach o niskiej marży i zostawić ją tylko tam, gdzie zarabiasz najwięcej. BaseLinker pozwala ustawić takie reguły na poziomie kanału i kategorii.

Wskazówka

Spisz priorytety na kartce, zanim je ustawisz w systemie: który kanał wygrywa przy konflikcie, od jakiego stanu wyłączasz oferty i gdzie, kto decyduje o zamówieniach w kolejce „do wyjaśnienia”. Jeśli nie da się tego spisać w pięciu zdaniach, system też tego nie wykona.

Jak często i co synchronizować

Częstotliwość zależy od tempa sprzedaży i od tego, co synchronizujesz. Zmiany wywołane zamówieniem powinny iść natychmiast: zamówienie na Allegro od razu obniża stan w sklepie, bez czekania na harmonogram. Pełny odczyt stanów z ERP wystarczy co 5–15 minut. Ceny kilka razy dziennie. Statusy zamówień i numery przesyłek co kilka minut, bo od nich zależy komunikacja z klientem.

Przy katalogu powyżej 20 000 pozycji pełna synchronizacja co 5 minut zacznie obciążać serwer sklepu. Wtedy przesyłasz tylko zmiany od ostatniego odczytu, a pełne porównanie robisz raz na dobę w nocy. Pełne porównanie jest potrzebne, bo wyłapuje produkty, które „rozjechały się” z powodu błędu albo przerwy.

Wdrożenie w sześciu krokach

  1. Zdefiniuj stan dostępny. Spisz, co odejmujesz od stanu z półki i w którym systemie to się liczy.
  2. Ustaw rezerwacje z terminem wygaśnięcia. Zamówienie blokuje towar od złożenia, nieopłacone zwalnia go po ustalonym czasie.
  3. Dobierz bufory per kategoria. Inne dla towaru masowego, inne dla drogiego, inne dla dropshippingu.
  4. Ustal priorytety kanałów. Kto wygrywa przy konflikcie i gdzie wyłączasz ofertę przy niskim stanie.
  5. Włącz synchronizację zdarzeniową plus harmonogram. Zamówienie od razu, pełny odczyt co kilka minut, pełne porównanie raz na dobę.
  6. Dodaj monitoring. Powiadomienie, gdy synchronizacja nie wykonała się dłużej niż 15 minut, i dziennik różnic po nocnym porównaniu.

Z naszej praktyki

Hurtownia z branży motoryzacyjnej sprzedawała w sklepie, na Allegro i przez trzech handlowców telefonicznie. Nadsprzedaż zdarzała się kilka razy w tygodniu, głównie przy ostatnich sztukach części, które handlowcy „obiecywali” klientom bez wpisywania zamówienia. Zmieniliśmy dwie rzeczy: handlowcy wpisują rezerwację do ERP w trakcie rozmowy, a stan dostępny do kanałów liczy ERP z uwzględnieniem tych rezerwacji. Do tego bufor 1 sztuki na częściach o stanie poniżej 5. Nadsprzedaż spadła do jednego lub dwóch przypadków w miesiącu, głównie przy awariach łącza.

Nadsprzedaż to nie problem techniczny, tylko brak decyzji: kto liczy stan dostępny, kto wygrywa przy konflikcie i co się dzieje, gdy synchronizacja stanie. Technika tylko wykonuje te decyzje.

Co robić, gdy synchronizacja stanie

Stanie na pewno: serwer ERP wyłączony na aktualizację, zmienione hasło do API, limit zapytań u marketplace’u. Pytanie nie brzmi „czy”, tylko „jak szybko się dowiesz i co zrobisz”. Minimum to powiadomienie po 15 minutach bez udanej synchronizacji. Rozsądne jest też automatyczne zwiększenie bufora albo wstrzymanie ofert z niskim stanem, gdy przerwa trwa dłużej niż godzinę. Po przywróceniu połączenia system musi przetworzyć kolejkę zdarzeń z przerwy, a nie tylko odczytać bieżący stan, inaczej zgubisz zamówienia złożone w tym czasie.

Pytania, które słyszymy najczęściej

Czy BaseLinker wystarczy jako jedyne źródło stanów?

Przy sklepie bez ERP tak, pod warunkiem że wszystkie kanały i sprzedaż poza systemem przechodzą przez niego. Gdy stany prowadzi ERP, BaseLinker powinien je odczytywać, a nie trzymać własnych.

Jaki bufor ustawić na start?

Przy towarze masowym 2 sztuki, przy niskich stanach 1, przy dropshippingu 5. Po miesiącu sprawdź, ile razy bufor zablokował sprzedaż przy fizycznie dostępnym towarze, i skoryguj.

Czy rezerwacja nieopłaconego zamówienia nie blokuje za dużo towaru?

Blokuje tylko do wygaśnięcia, zwykle 2 godziny przy płatności online. To niewielki koszt w porównaniu z anulowaniem opłaconego zamówienia na Allegro.

Co z produktami w kompletach?

Dostępność kompletu liczysz z najniższego stanu dostępnego składnika podzielonego przez ilość w komplecie. Sprzedaż kompletu rezerwuje składniki, sprzedaż składnika obniża dostępność kompletu.

Układamy obieg stanów między ERP, BaseLinkerem i kanałami tak, żeby nadsprzedaż przestała być tematem. Zobacz, jak automatyzujemy obsługę zamówień. O łączeniu Allegro ze sklepem piszemy też w artykule Allegro i własny sklep na jednym magazynie.

Przydało się?

Oceń ten artykuł

Brak ocen. Bądź pierwszy.
Podaj dalej

Udostępnij artykuł

Eryk Dukowski
Autor
Eryk Dukowski

Właściciel EDUKOWSKI. Od 2015 roku programuję sklepy PrestaShop, moduły i integracje z systemami ERP. Piszę o tym, co widzę w codziennej pracy ze sklepami: wydajności, sprzedaży B2B, automatyzacji i migracjach.

Podobne artykuły

Wszystkie artykuły →