Jeżeli WooCommerce przyjął dwa zamówienia na produkt, którego w magazynie była tylko jedna sztuka, najpierw sprawdź ustawienia kontroli zapasu, możliwość zamawiania produktów niedostępnych oraz historię obu zamówień. Nie każda taka sytuacja jest błędem samego sklepu. Przyczyną może być brak śledzenia ilości na poziomie wariantu, dopuszczone zamówienia oczekujące na dostawę, opóźniona synchronizacja z zewnętrznym magazynem albo dwukrotne złożenie zamówienia podczas problemu z płatnością. Dopiero po ustaleniu, czy oba zamówienia są rzeczywiste i opłacone, można bezpiecznie poprawić dostępność produktu.
To zjawisko nazywa się często oversellingiem, czyli sprzedażą liczby sztuk większej niż dostępny zapas. Jest szczególnie dotkliwe w sklepach z produktami jednostkowymi, końcówkami kolekcji, rękodziełem i towarem sprzedawanym równolegle na Allegro, w sklepie internetowym i przez sprzedawcę stacjonarnego. Problem nie kończy się na przeprosinach: może wymagać zwrotu pieniędzy, zmiany terminu realizacji i ręcznego uzgodnienia stanów w kilku systemach.
Czy dwie pozycje w WooCommerce oznaczają, że faktycznie sprzedano dwie sztuki?
Niekoniecznie. Dwa zamówienia o podobnej godzinie i z tym samym produktem mogą oznaczać dwa odrębne zakupy, ale mogą też wynikać z ponownego wysłania formularza przez jednego klienta. Warto porównać identyfikator klienta, adres e-mail, datę utworzenia, metodę płatności, numer transakcji i uwagi zapisane w obu zamówieniach. Szczególnie ważne jest ustalenie, czy operator płatności pobrał pieniądze raz, czy dwa razy.
Jeżeli jedno zamówienie widnieje jako „Oczekuje na płatność”, a drugie jako „W trakcie realizacji”, nie oznacza to automatycznie dwóch opłaconych sztuk. Takie rozbieżności mogą wynikać z działania bramki i opóźnionych powiadomień. Osobną procedurę sprawdzania wpłaty opisuje poradnik co zrobić, gdy klient zapłacił, a WooCommerce nadal oczekuje na płatność. Zanim skasujesz zamówienie, upewnij się, że nie usuniesz w ten sposób śladu rzeczywistej transakcji.
Kontrola stanów magazynowych musi działać w dwóch miejscach
W standardowej konfiguracji WooCommerce śledzenie liczby dostępnych sztuk wymaga odpowiednich ustawień sklepu oraz konkretnego produktu. Wejdź do WooCommerce → Ustawienia → Produkty → Magazyn i sprawdź, czy zarządzanie stanami magazynowymi jest aktywne. Następnie otwórz edycję problematycznego produktu, przejdź do danych produktu i sprawdź, czy włączono śledzenie ilości oraz wpisano prawidłowy stan.
Jeżeli w konfiguracji produktu pozostawiono jedynie status „W magazynie”, bez śledzenia konkretnej ilości, sam ten status nie oznacza, że WooCommerce potrafi odjąć jedną sprzedaną sztukę od zapasu. W takiej sytuacji produkt może pozostawać dostępny do zakupu mimo kolejnych zamówień. Należy też sprawdzić, czy zapisane dane rzeczywiście trafiają do tego produktu, który znajduje się w koszyku, a nie do podobnej pozycji w katalogu.
W przypadku produktów z wariantami kontrola bywa bardziej złożona. Koszulka w rozmiarze M i L może korzystać ze wspólnego zapasu produktu albo mieć oddzielne stany magazynowe na poziomie poszczególnych wariantów. Jeśli sprzedajesz ostatnią sztukę konkretnego rozmiaru, sprawdź ustawienia tego właśnie wariantu oraz identyfikator SKU. Nie wystarczy, że główny produkt pokazuje ogólną liczbę dostępnych sztuk.
Zamówienia oczekujące na dostawę mogą być włączone przez pomyłkę
W ustawieniach produktu lub wariantu WooCommerce można zezwolić na backorders, czyli przyjmowanie zamówień mimo braku towaru. Dostępne są różne warianty takiej konfiguracji, w tym dopuszczanie zamówień z komunikatem dla klienta. Jeżeli ta opcja została wcześniej włączona, sprzedaż przy stanie zerowym może być oczekiwanym zachowaniem systemu, a nie awarią.
Warto rozróżnić backorder i przedsprzedaż produktu. Przedsprzedaż jest zaplanowanym procesem oferowania rzeczy, która ma trafić do sprzedaży lub dostawy później; wymaga jasnego przedstawienia klientowi zasad i terminu. Backorder to ustawienie dostępności pozwalające przyjmować zamówienia mimo wyczerpanego zapasu. Samo uruchomienie opcji backorder nie organizuje dostawy ani nie zapewnia klientowi aktualnej informacji o jej terminie.
Nie traktuj też ustawienia „Sprzedawany pojedynczo” jako zabezpieczenia ostatniej sztuki. Ogranicza ono liczbę egzemplarzy danego produktu w pojedynczym zamówieniu, ale nie zapobiega złożeniu przez tego samego lub innego klienta kolejnego zamówienia. Jeśli magazyn dysponuje jedną sztuką, potrzebna jest prawidłowa kontrola stanów, a nie jedynie ograniczenie ilości w koszyku.
„Wstrzymaj zapas” nie oznacza, że każdy koszyk blokuje towar na zawsze
W ustawieniach magazynu znajduje się pole określające czas wstrzymywania zapasu dla nieopłaconych zamówień, często opisywane jako Hold stock (minutes). Dotyczy ono kwalifikujących się zamówień ze statusem „Oczekuje na płatność”. Po przekroczeniu ustawionego czasu takie zamówienie może zostać anulowane, a zapas zwolniony. Ustawienie to nie działa identycznie dla zamówień „Wstrzymanych” (On hold), na przykład oczekujących na ręczne potwierdzenie przelewu bankowego.
Właściciel sklepu powinien dobrać długość tego okresu do rzeczywistego przebiegu płatności. Zbyt krótki czas może spowodować anulowanie zamówień, w których klient jeszcze kończy operację płatniczą, a zbyt długi może niepotrzebnie blokować ograniczony asortyment. Oficjalna dokumentacja WooCommerce podaje w kontekście rozwiązywania problemów magazynowych przykład ustawienia 60 minut, lecz nie jest to bezwarunkowo właściwy czas dla każdej bramki i każdego sklepu.
Istotne jest także to, że pozostawienie produktu w koszyku nie jest tym samym co opłacony zakup. Trzeba badać rzeczywistą ścieżkę składania zamówienia, sposób rezerwacji towaru i aktualizację jego ilości po zmianie statusu zamówienia. Dopiero takie rozróżnienie pokazuje, czy problem wynika z nieprawidłowego zwalniania zapasu, czy z przyjmowania kolejnych zamówień mimo wyczerpania dostępnej liczby sztuk.
Jak rozpoznać, czy zawiniła synchronizacja z magazynem lub marketplace?
Sklep, który sprzedaje jednocześnie przez własną stronę i zewnętrzne kanały, może korzystać z jednego wspólnego magazynu albo kilku baz stanów aktualizowanych okresowo. Jeżeli ostatnia sztuka sprzeda się na marketplace, a synchronizacja z WooCommerce nastąpi dopiero później, klient w sklepie nadal może zobaczyć produkt jako dostępny. Podobna rozbieżność pojawi się, gdy pracownik ręcznie zmieni zapas w jednym systemie, lecz integracja nadpisze go starszą wartością z drugiego.
Dlatego warto ustalić, który system jest źródłem prawdy dla stanów magazynowych. Może to być WooCommerce, program magazynowy lub zewnętrzna platforma zarządzania zamówieniami. Nie powinno się zakładać, że każde narzędzie ma prawo niezależnie nadpisywać zapas. Przy połączeniu sklepu z zewnętrznymi kanałami sprzedaży pomocny jest także opis integracji BaseLinker ze sklepem internetowym, ale sama obecność integracji nie dowodzi, że synchronizacja działa prawidłowo i bez opóźnień.
W logach szukaj przede wszystkim czasu pobrania zamówienia, czasu aktualizacji zapasu i informacji o ewentualnych błędach API. Sprawdź, czy ta sama pozycja ma zgodny SKU i jest mapowana do tego samego produktu magazynowego. Jeżeli jeden kanał korzysta ze stanu wariantu, a drugi z ogólnego produktu, nawet poprawnie działające harmonogramy synchronizacji mogą przekazywać niewłaściwe ilości.
Jak przeprowadzić diagnostykę dwóch zamówień na tę samą ostatnią sztukę?
Zacznij od zabezpieczenia informacji o problemie. Zapisz identyfikatory obu zamówień, ich statusy, daty i godziny, SKU produktu, historię zmian stanów oraz identyfikatory transakcji u operatora płatności. Warto również zanotować, jakie integracje i wtyczki były aktualizowane przed wystąpieniem problemu. Nie zmieniaj od razu wszystkich ustawień, ponieważ utrudni to wskazanie przyczyny.
| Objaw | Najważniejsza kontrola | Możliwy kierunek naprawy |
|---|---|---|
| Produkt nadal pokazuje „W magazynie” po zakupie | Globalne i lokalne śledzenie ilości, faktyczny stan sztuk | Włączyć poprawne zarządzanie zapasem i skorygować ilość |
| Ostatni wariant dostępny mimo wyczerpania | SKU i konfiguracja magazynu konkretnego wariantu | Naprawić mapowanie lub śledzenie zapasu wariantu |
| Nowe zamówienia przy stanie zero | Ustawienie dopuszczania backorders | Wyłączyć niezamierzone przyjmowanie zamówień oczekujących |
| Dwa niemal identyczne zamówienia klienta | Identyfikatory płatności, notatki zamówień, odpowiedzi bramki | Rozróżnić ponowiony formularz od dwóch prawdziwych zakupów |
| Sprzedaż na dwóch kanałach w tej samej chwili | Czas synchronizacji, logi API, źródło danych o zapasie | Ujednolicić magazyn i mechanizm aktualizacji |
Jeżeli ustawienia wydają się prawidłowe, a problem powtarza się przy równoczesnych zakupach, należy zbadać sposób obsługi współbieżnych żądań, rezerwacji produktu i niestandardowych rozszerzeń koszyka. Szczególnie podejrzane są modyfikacje checkoutu, integracje płatności oraz własny kod zmieniający stany magazynowe. Nie oznacza to automatycznie błędu w podstawowym WooCommerce: dopiero test w kontrolowanym środowisku pozwala oddzielić problem konfiguracji od konfliktu dodatków.
Dlaczego odświeżenie strony produktu nie wystarcza do potwierdzenia naprawy?
Strona produktu może pokazywać starszą informację o dostępności, jeśli po drodze działa pamięć podręczna serwera, CDN albo dodatkowy system indeksujący katalog. Nie jest to jednak dowód, że WooCommerce rzeczywiście przyjął zamówienie ponad stan. Weryfikacja musi obejmować próbę dodania produktu do koszyka, zachowanie checkoutu i zapisy magazynowe po próbnym zamówieniu. Test należy wykonać na kopii testowej albo w sposób, który nie obciąży przypadkowo prawdziwego klienta.
Dobry test dotyczy również zmian statusów: przejścia zamówienia przez oczekiwanie na płatność, prawidłowe potwierdzenie transakcji, anulowanie i — zależnie od konfiguracji — zwolnienie zapasu. W aktualnych wersjach WooCommerce określone przejścia statusów mogą powodować przywrócenie wcześniej odjętych sztuk; nie należy więc ręcznie dodawać produktu z powrotem do magazynu, zanim sprawdzisz, czy system nie zrobił tego sam. Zapisane w zamówieniu uwagi o zmianach ilości pomagają odtworzyć przebieg zdarzeń.
Co zrobić, kiedy dwa zamówienia są opłacone, a masz tylko jedną sztukę?
Przede wszystkim zatrzymaj dalszą sprzedaż tego konkretnego towaru do czasu wyjaśnienia sytuacji. Sprawdź stan u dostawcy oraz realny termin pozyskania kolejnej sztuki. Następnie skontaktuj się z klientem, którego zamówienia nie możesz zrealizować na uzgodnionych warunkach. Przedstaw rzeczywiste możliwości: nowy termin, odpowiedni zamiennik za zgodą klienta albo anulowanie i zwrot płatności. Nie obiecuj dostawy, której nie możesz potwierdzić.
W rozliczeniu zamówienia zawsze uzgadniaj faktyczną płatność z operatorem. Jeżeli konieczny jest zwrot, wykonaj go zgodnie z procedurą używanego systemu płatniczego i sprawdź jego stan. Oddziel też korektę finansową od korekty magazynowej, aby przypadkiem nie dodać tej samej sztuki dwa razy. W procesach wysyłkowych i magazynowych przydatne są zasady opisane w artykule o organizacji realizacji zamówień w sklepie internetowym.
Jak ograniczyć ryzyko ponownej sprzedaży ponad stan?
Podstawą jest aktywne śledzenie ilości w WooCommerce, poprawne ustawienie wariantów, wyłączenie niezamierzonych backorders i rozsądny czas obsługi zamówień nieopłaconych. Przy wielu kanałach sprzedaży równie ważne są spójne identyfikatory SKU, jeden wyraźnie wskazany system magazynowy oraz monitorowanie błędów synchronizacji. Nie polegaj wyłącznie na wizualnym komunikacie „Dostępny” na stronie produktu.
W sklepach z limitowanym towarem warto przeprowadzać kontrolowane testy dwóch niemal równoczesnych zamówień, zwłaszcza po zmianie wtyczki checkoutu, bramki płatniczej lub integracji magazynowej. Przed takim testem wykonaj kopię danych i użyj środowiska stagingowego, aby nie tworzyć sztucznych obciążeń i nie wysyłać przypadkowych potwierdzeń do klientów. Jeśli używasz własnego kodu lub rozszerzeń obsługujących rezerwacje towaru, sprawdź ich kompatybilność z aktualną konfiguracją sklepu.
Warto również przygotować prostą procedurę reakcji: kto porównuje zamówienia, kto sprawdza operatora płatności, kto poprawia magazyn i kto kontaktuje się z klientem. Nawet jeśli awaria pojawia się rzadko, ustalony sposób działania zmniejsza ryzyko drugiego problemu — błędnego zwrotu, ponownego obciążenia albo wysłania produktu, którego fizycznie nie ma.
Najczęstsze pytania o sprzedaż ponad stan w WooCommerce
Czy WooCommerce sam pilnuje ostatniej sztuki produktu?
Tak, standardowy system może śledzić ilości i ograniczać zakupy, ale wymaga prawidłowej konfiguracji globalnej oraz ustawień produktu lub wariantu. Na wynik mogą też wpływać rozszerzenia, integracje i dopuszczenie zamówień przy ujemnym stanie.
Czy włączenie „Sprzedawany pojedynczo” zabezpiecza produkt przed dwoma zamówieniami?
Nie. Funkcja ogranicza liczbę sztuk w jednym zamówieniu, ale nie blokuje kolejnego zamówienia na ten sam produkt. W przypadku jednej dostępnej sztuki konieczne jest śledzenie stanu magazynowego.
Czy zamówienie „Oczekuje na płatność” na zawsze blokuje towar?
Nie. W zależności od konfiguracji nieopłacone zamówienie może zostać anulowane po upływie ustawionego czasu, a zapas wrócić do sprzedaży. Należy jednak odróżnić ten status od „Wstrzymane”, na który ustawienie czasu wstrzymywania zapasu nie działa tak samo.
Czy po anulowaniu zamówienia trzeba ręcznie zwiększyć stan magazynowy?
Nie należy robić tego automatycznie. Najpierw sprawdź historię zamówienia i produktu: WooCommerce mógł już zwrócić wcześniej odjęty zapas. Ręczna korekta bez weryfikacji może spowodować kolejny przypadek sprzedaży nieistniejącego towaru.
Czy zbyt wolna synchronizacja BaseLinkera lub magazynu może spowodować overselling?
Tak. Gdy ostatnia sztuka zostanie sprzedana w jednym kanale, a pozostałe kanały przez pewien czas nadal widzą stary zapas, może dojść do przyjęcia zamówień ponad stan. Należy porównać faktyczne czasy synchronizacji, logi błędów oraz mapowanie identyfikatorów produktów, zamiast zakładać, że każdy system aktualizuje się natychmiast.
Źródła
WooCommerce — diagnozowanie problemów z zamówieniami i stanami magazynowymi
WooCommerce — ustawienia produktów i czasu wstrzymania zapasu
WooCommerce — zarządzanie ilością, backorders i wariantami produktu