Nadsprzedaż rzadko bierze się z braku integracji - najczęściej z tego, że dwa systemy jednocześnie uważają się za właściciela prawdy o stanie. Synchronizacja stanów magazynowych polega na wskazaniu jednego miejsca, w którym liczba sztuk jest prawdziwa, i dopilnowaniu, żeby wszystkie pozostałe systemy - sklep, Allegro, hurtownia, program magazynowy - tylko ją odczytywały, nigdy nie nadpisywały. Gdy ten układ jest ustawiony dobrze, sprzedana sztuka znika ze wszystkich kanałów w kilkadziesiąt sekund. Gdy jest ustawiony źle, raz w tygodniu dzwonisz do klienta z informacją, że jednak nie ma.
Poniżej rozpisuję decyzje po kolei: kto ma trzymać stan, jak często go rozsyłać, gdzie leżą typowe pułapki i jak sprawdzić, czy Twoja synchronizacja działa, zanim sprawdzi to za Ciebie klient.
Co to znaczy „synchronizacja stanów magazynowych”
Synchronizacja stanów magazynowych to automatyczne przenoszenie informacji o liczbie dostępnych sztuk między systemami, które sprzedają lub przechowują towar. Składa się z dwóch osobnych strumieni:
- Stan w dół - z magazynu do kanałów sprzedaży. Kiedy w magazynie zostają 3 sztuki, sklep i Allegro mają pokazać 3, a nie 7.
- Rezerwacja w górę - z kanałów do magazynu. Kiedy ktoś kupuje w sklepie, magazyn musi się o tym dowiedzieć zanim ktoś inny kupi to samo na Allegro.
Większość awarii, które naprawiam, to nie brak pierwszego strumienia, tylko opóźnienie drugiego: sklep pobiera stany co godzinę, ale zamówienia z marketplace wpadają do magazynu dopiero wieczorem - i przez cały dzień sprzedajesz towar, którego już nie ma.
Jedno źródło prawdy - to jedyna naprawdę ważna decyzja
Źródło prawdy to system, którego liczba jest wiążąca i którego nikt inny nie nadpisuje. Musi być dokładnie jeden. Trzy układy, które mają sens:
| Układ | Kto trzyma prawdziwy stan | Dla kogo | Główne ryzyko |
|---|---|---|---|
| Sklep jako centrum | WooCommerce | Jeden kanał sprzedaży, magazyn u siebie, do kilkuset indeksów | Przy wejściu na Allegro trzeba to przebudować |
| Integrator jako centrum | BaseLinker lub podobny | Sklep plus marketplace, wysyłka z własnego magazynu | Zależność od dostawcy, koszt rośnie z liczbą zamówień |
| ERP lub WMS jako centrum | Subiekt, Comarch, enova, system magazynowy | Magazyn z procedurami, kilku pracowników, produkcja lub kompletacja | Wdrożenie dłuższe i droższe, potrzebna dobra integracja pośrednia |
Rekomendacja, którą daję najczęściej: sprzedajesz w kilku kanałach, a magazyn masz u siebie - źródłem prawdy niech będzie integrator. Masz już system magazynowo-księgowy, w którym pracują ludzie od przyjęć i wydań - to on wygrywa, a integrator jest tylko tłumaczem między nim a kanałami (jak spiąć ERP ze sklepem).
Czego nie robić nigdy: dwukierunkowej synchronizacji stanu między systemami, z których oba mogą go zmieniać. To nie integracja, tylko loteria - przy równoczesnych zmianach wygrywa ta zapisana później, a nie ta prawdziwa.
Skąd naprawdę biorą się nadsprzedaże
Nadsprzedaż to sprzedanie sztuki, której fizycznie nie ma. Przyczyny od najczęstszej:
- Zbyt rzadka synchronizacja - stany rozsyłane raz na godzinę przy produkcie schodzącym po kilka sztuk dziennie to zaproszenie do kolizji w promocji
- Brak rezerwacji przy złożeniu zamówienia - stan schodzi dopiero po opłaceniu albo spakowaniu, a przez ten czas towar jest wciąż widoczny jako dostępny
- Zamówienia z marketplace pobierane z opóźnieniem - klasyczny objaw sytuacji, w której BaseLinker nie pobiera zamówień na bieżąco
- Rozjazd SKU - ten sam produkt ma inny symbol w sklepie, inny w hurtowni i inny na Allegro, więc synchronizacja trafia w powietrze
- Ręczne korekty w panelu sklepu - ktoś „poprawia” stan, integrator nadpisuje to przy najbliższym przebiegu, a magazynier jest pewny, że zrobił robotę
- Zwroty i anulaty - towar wraca na stan automatycznie, mimo że leży uszkodzony w kartonie na zapleczu
- Stany z hurtowni traktowane jako pewne - plik sprzed sześciu godzin nie jest stanem, tylko prognozą
Punkt 4 wygląda niepozornie, a bywa najdroższy. Zanim ruszy jakakolwiek integracja, robi się porządek w symbolach: jeden produkt, jeden SKU, ten sam wszędzie - przy dużych katalogach zwykle w parze z porządnym importem i eksportem produktów.
Zestawy, warianty i produkty składane
Zestaw to produkt, który nie ma własnego stanu - jego dostępność wynika ze stanu składników. Tu przewraca się najwięcej sklepów, bo domyślnie zestaw jest traktowany jak zwykły towar z własnym licznikiem. Poprawnie ustawiony działa tak:
- dostępność zestawu = największa liczba pełnych kompletów, jaką da się złożyć ze składników
- sprzedaż zestawu zdejmuje stan każdego składnika osobno
- sprzedaż samego składnika obniża dostępność zestawu w każdym kanale
Warianty (rozmiar, kolor, pojemność) mają ten sam problem w mniejszej skali: stan musi siedzieć na wariancie, nie na produkcie nadrzędnym. Jeśli warianty tylko zmieniają cenę, a stan jest na produkcie, synchronizacja nigdy się nie zgodzi.
Jak często synchronizować i jaki bufor ustawić
Nie ma jednej dobrej częstotliwości - wszystko zależy od rotacji. Widełki, które sprawdzają się w praktyce:
| Sytuacja | Sensowna częstotliwość | Bufor bezpieczeństwa |
|---|---|---|
| Towar unikatowy, jedna sztuka | natychmiast, zdarzeniowo | brak, ale rezerwacja przy złożeniu zamówienia |
| Szybko rotujący, wiele kanałów | zdarzeniowo plus przebieg kontrolny co kilkanaście minut | 1-2 sztuki na indeks |
| Wolno rotujący, własny magazyn | co godzinę wystarczy | zwykle zbędny |
| Stany z hurtowni lub dropshipping | zgodnie z tym, jak często hurtownia odświeża plik | ukrywanie towaru poniżej progu, np. 2-3 sztuk |
Bufor bezpieczeństwa to sztucznie zaniżony stan: masz 5, pokazujesz 3. Kosztuje trochę sprzedaży, ale ratuje przed anulowaniem zamówienia na Allegro, a tam anulata z winy sprzedawcy boli podwójnie - raz klientem, raz oceną konta (wskaźniki jakości na marketplace bywają zmieniane, więc warto je okresowo sprawdzać).
Cudzy magazyn - dropshipping, WMS i fulfillment
Przy dropshippingu nie masz stanu, tylko informację o cudzym stanie. Bufory muszą być wtedy większe, produkty schodzące do zera powinny znikać z oferty zamiast pokazywać się jako „na zamówienie”, a wiek pliku od dostawcy trzeba liczyć realnie: przy szybkiej rotacji ryzyko nadsprzedaży istnieje zawsze, technika je tylko zmniejsza. Samo pobieranie i mapowanie danych opisałem przy imporcie produktów XML od hurtowni.
Podobnie działa magazyn zewnętrzny (fulfillment) albo własny WMS, czyli system, który wie nie tylko ile masz sztuk, ale i gdzie leżą. Źródłem prawdy staje się wtedy magazyn, a Twoje systemy tylko odbierają jego komunikaty - łącznie z potwierdzeniami wysyłki i numerami przesyłek wracającymi do kanałów.
Wdrożenie krok po kroku
- Ustal źródło prawdy i zapisz to jednym zdaniem, np. „stany trzyma integrator, sklep tylko wyświetla”
- Uporządkuj SKU - jeden symbol na produkt i wariant, identyczny we wszystkich systemach
- Włącz stan na wariantach, nie na produktach nadrzędnych
- Ustaw rezerwację przy złożeniu zamówienia, nie przy opłaceniu, plus automatyczne zwolnienie po określonym czasie dla nieopłaconych
- Rozpisz zestawy i ich składniki, zanim włączysz synchronizację
- Ustaw częstotliwość i bufory według tabeli wyżej, osobno dla grup rotacji
- Zablokuj ręczną edycję stanów poza źródłem prawdy - to jedyny sposób, żeby zasada przetrwała kontakt z zespołem
- Uruchom na jednej kategorii, obserwuj dobę, dopiero potem włączaj resztę katalogu
Krok 8 jest nienegocjowalny. Synchronizacja włączona od razu na całym katalogu potrafi w kilka minut wyzerować ofertę, jeśli mapowanie SKU ma dziurę.
Jak sprawdzić, czy Twoja synchronizacja naprawdę działa
Test zajmuje kwadrans i wykonasz go sam:
- Wybierz produkt dostępny we wszystkich kanałach i zanotuj stan w każdym z nich
- Złóż testowe zamówienie w sklepie i patrz na zegarek: po jakim czasie stan spadł na Allegro
- Zrób to samo w drugą stronę - zamówienie z marketplace, sprawdź sklep i magazyn
- Anuluj testowe zamówienie i sprawdź, czy sztuka wróciła na stan wszędzie
- Zmień stan ręcznie w sklepie i sprawdź, czy integrator go nadpisze (powinien, jeśli to on jest źródłem prawdy)
Jeśli którykolwiek test daje wynik „nie wiem”, nie masz synchronizacji, tylko przyzwyczajenie. Warto też włączyć alert na stany schodzące poniżej zera - to pierwszy sygnał wycieku, zanim zauważy go klient.
Jak podchodzę do tego u klientów
Zaczynam od bezpłatnej diagnozy: patrzę na katalog, kanały, obecne integracje i drogę zamówienia od kliknięcia do wydania z magazynu. Zwykle po godzinie widać, czy wystarczy poprawić ustawienia i mapowanie, czy trzeba napisać pośrednika, bo systemy nie chcą ze sobą rozmawiać wprost. Przy większej robocie - własnym module do WooCommerce, integracji z systemem magazynowym albo przebudowie logiki zestawów - dostajesz wycenę na piśmie przed startem; takie projekty mieszczą się zwykle w przedziale 5000-10000 zł netto. Pilnowanie układu można potem oddać w stałe wsparcie, bo integracje psują się nie w dniu wdrożenia, tylko przy trzeciej aktualizacji API.
Najczęstsze pytania
Czy BaseLinker sam pilnuje stanów magazynowych? Tak, ale tylko wtedy, gdy jest jedynym systemem, który je zmienia. Rozsyła stan do sklepu i marketplace oraz zdejmuje sztuki przy zamówieniach, natomiast nie naprawi rozjazdu SKU ani ręcznych korekt robionych w sklepie. Ustawienie go jako źródła prawdy i zablokowanie edycji gdzie indziej to warunek, żeby to działało.
Dlaczego stany w sklepie różnią się od tych na Allegro? Najczęstsze powody to opóźnione pobieranie zamówień z marketplace, różne symbole produktu w obu miejscach albo brak rezerwacji przy złożeniu zamówienia. Zacznij od porównania SKU dla kilku rozjeżdżających się produktów. Jeśli symbole się zgadzają, problem leży w częstotliwości albo w kierunku synchronizacji.
Czy da się połączyć WooCommerce z magazynem bez integratora? Da się, przez bezpośrednią integrację z API systemu magazynowego, i bywa to tańsze w utrzymaniu miesięcznym. Sens ma przy jednym kanale sprzedaży i stabilnym systemie po drugiej stronie. Przy kilku marketplace gotowy integrator zwykle wygrywa, bo bierze na siebie zmiany w API każdego z nich.
Ile trwa wdrożenie synchronizacji stanów magazynowych? Przy uporządkowanym katalogu i standardowych systemach to zwykle kilka dni roboczych razem z testami. Najwięcej czasu zabiera nie technika, tylko porządkowanie symboli i rozpisanie zestawów - przy zaniedbanym katalogu ten etap trwa dłużej niż samo spięcie systemów.
Powiązane: BaseLinker nie pobiera zamówień · Import produktów XML od hurtowni · Sklepy e-commerce