Wyprzedany, a warianty na stanie
Produkt pokazuje brak w magazynie w kategoriach, wyszukiwarce i Google, a jego karta dalej sprzedaje warianty. Jeden z tych stanów jest nieprawdziwy.
Objaw
Produkt wariantowy ma na liście kategorii, w wynikach wyszukiwania i w Google „Brak w magazynie” — albo w ogóle znika z kategorii, jeśli sklep ukrywa produkty, których nie ma w magazynie. A na karcie produktu wybór wariantu działa: klient wybiera rozmiar i Dodaj do koszyka przechodzi.
Bywa też odwrotnie. Produkt naprawdę jest wyprzedany, ale jego warianty wciąż mają stan, więc karta przyjmuje zamówienia na towar, którego sklep nie ma.
Ile to kosztuje
Karta produktu to jedyne miejsce, które czyta warianty. Prawie wszystko inne czyta stan samego produktu: klasa stanu, z której korzystają motywy, dane strukturalne dla Google i „Ukrywaj produkty, których nie ma w magazynie” na listach kategorii, w wyszukiwarce i w Store API.
- Sprzedaż, której nikt nie widzi, że traci. Klient, który przegląda kategorie albo szuka, nie trafia na kartę, która by mu sprzedała. Sama karta działa, więc w sklepie nikt niczego nie zauważa.
- Wyniki wyszukiwania mówią „niedostępny”. Dane strukturalne na karcie mówią Google, że produktu nie ma w magazynie, cokolwiek mówią warianty.
- Albo zamówienia, których nie da się wysłać. Gdy myli się strona wariantów, klienci mogą zamówić towar, którego nie ma — a anulowane zamówienie kosztuje więcej niż niezłożone.
Jak to sprawdzić samodzielnie
Zapytanie znajduje opublikowane produkty wariantowe ze stanem „brak w magazynie”, które mają co najmniej jeden włączony wariant na stanie i z ceną:
wp db query "SELECT parent.ID, parent.post_title
FROM wp_posts parent
JOIN wp_postmeta ps ON ps.post_id = parent.ID AND ps.meta_key = '_stock_status'
WHERE parent.post_type = 'product' AND parent.post_status = 'publish'
AND ps.meta_value = 'outofstock'
AND EXISTS (SELECT 1 FROM wp_posts v
JOIN wp_postmeta vs ON vs.post_id = v.ID AND vs.meta_key = '_stock_status'
JOIN wp_postmeta vp ON vp.post_id = v.ID AND vp.meta_key = '_price'
WHERE v.post_parent = parent.ID AND v.post_type = 'product_variation'
AND v.post_status = 'publish'
AND vs.meta_value IN ('instock','onbackorder') AND vp.meta_value <> '')"
Traktuj wynik jako pierwsze przybliżenie. Wariant bez własnego stanu bierze ilość z produktu, więc przy zerze sztuk na produkcie nie da się go kupić, nawet jeśli jego własny stan wciąż mówi „Na stanie” — zapytanie go wypisze, a klient by go nie kupił.
Z panelu: Produkty → filtr stanu magazynowego „Brak w magazynie”, potem w każdym produkcie wariantowym porównaj zakładkę Warianty ze stanem u góry.
Jak to naprawić
- Rozstrzygnij, który stan jest prawdziwy. Otwórz zakładkę Warianty produktu i porównaj ilości z tym, co naprawdę masz.
- Jeśli warianty są nieprawdziwe, najpierw popraw ich stan. Zapis produktu przed tym przeliczy jego stan z wariantów i pokaże brakujący towar wszędzie jako dostępny.
- Jeśli warianty są prawdziwe, a produkt sam nie prowadzi stanu, zapisz produkt — WooCommerce przeliczy jego stan z wariantów. Jeśli wraca „Brak w magazynie”, odnów tabele wyszukiwania (WooCommerce → Status → Narzędzia → Tabele do wyszukiwania produktów → Odnów) i zapisz jeszcze raz.
- Jeśli produkt prowadzi własny stan z zerem sztuk, a warianty mają własny, zapis niczego nie zmieni: zostaw stan tylko na wariantach albo wpisz na produkcie prawdziwą ilość.
- Jeśli rozjazd wraca, coś zapisuje stany z pominięciem WooCommerce — import albo integracja z magazynem. Popraw to tam, inaczej następna synchronizacja go przywróci.
Kiedy to fałszywy alarm
Praktycznie nigdy. Produkt nie może być celowo jednocześnie wyprzedany i do kupienia, więc żadne ustawienie nie robi z tego stanu poprawnego. Zanim cokolwiek zmienisz, rozstrzygnij tylko, który z dwóch stanów jest prawdziwy — dlatego znalezisko pokazuje ilości.
Co trzyma tę kontrolę w ryzach tam, gdzie ma milczeć: wariant liczy się tylko wtedy, gdy klient naprawdę mógłby dodać go do koszyka. Nieaktualne „Na stanie” na wariancie, który bierze ilość z produktu z zerem sztuk, samo znaleziska nie daje.
Jak znajduje to Merchlint
Merchlint przegląda każdy opublikowany produkt wariantowy, którego własny stan to „Brak w magazynie” — w całym katalogu, nie tylko wśród produktów, które się sprzedały, bo produkt błędnie oznaczony jako wyprzedany od pierwszego dnia nigdy się nie sprzeda. O każdy wariant pyta WooCommerce o to samo, o co WooCommerce pyta przy dodaniu do koszyka: włączony, z ceną, na stanie, z co najmniej jedną sztuką.
Znalezisko pokazuje stan produktu, czy produkt sam prowadzi stan, ile wariantów da się kupić z ilu i kilka z nich z ilością — po tych liczbach najłatwiej ocenić, który stan jest prawdziwy.
Pewność: F — fakt z bazy, a o tym, czy wariant da się kupić, rozstrzyga sam WooCommerce.
Nowa w wersji 0.3.5. Od tej samej wersji Sprzedawały się przez rok, dziś nie da się ich kupić nie wypisuje takich produktów, bo da się je kupić. Przypadek odwrotny — produkt wygląda na dostępny, a żadnego wariantu nie da się kupić — to Wszystkie warianty są niedostępne.
Ta kontrola działa w wersji darmowej, na każdym produkcie, bez limitu.
Coś się nie zgadza z tym, co widzisz w sklepie? Napisz — czytamy każdą wiadomość. contact@merchlint.com
Masz wynik z wtyczki i nie wiesz, od czego zacząć? Do 15 listopada 2026 przeglądamy eksporty z dziesięciu sklepów — darmowy audyt katalogu.