Wariant bez ceny albo bez SKU
Produkt nadrzędny wygląda w kategorii na wyceniony i kupowalny. Jedna kombinacja w środku nie jest — i nic tego nie mówi, dopóki klient jej nie wybierze.
Objaw
Na liście kategorii widnieje „od 49 zł”, karta produktu wygląda normalnie. Klient wybiera Niebieski / XL i cena znika, przycisk dodania do koszyka przestaje istnieć albo strona po prostu przestaje reagować na wybór. Nic nie zgłasza błędu — z punktu widzenia WooCommerce ta kombinacja zwyczajnie nie istnieje.
Odmiana z brakującym SKU jest jeszcze cichsza. Wariant sprzedaje się bez zarzutu; jest tylko niewidoczny dla wszystkiego poza sklepem.
Ile to kosztuje
Produkt z wariantami reklamuje najtańszy z nich. Ten zakres cenowy liczy się z wariantów, które cenę mają — więc zepsuta kombinacja nigdy go nie obniża i nigdy nie pokazuje się na liście:
- Produkt rankuje i zbiera budżet reklamowy na kombinacji, której nie sprzeda. Odwiedzający przychodzi po rozmiar, którego szukał, i nie może go wybrać.
- Wariant bez ceny jest po cichu wykluczony z koszyka. WooCommerce traktuje puste
_pricejako „nie do kupienia” — bez ostrzeżenia w panelu i bez komunikatu na sklepie. - Wariantu bez SKU nie da się zidentyfikować dalej. Synchronizacja stanów, listy kompletacyjne i feedy produktowe kluczują po SKU; puste znaczy, że wiersz wypada albo skleja się z sąsiednim.
Im większy produkt z wariantami, tym lepiej to ukrywa. Przy czterdziestu kombinacjach nikt nie przeklika wszystkich czterdziestu.
Jak to sprawdzić samodzielnie
Warianty, które klient może wybrać, ale nie kupić:
wp db query "SELECT p.post_parent AS produkt, p.ID AS wariant \
FROM wp_posts p LEFT JOIN wp_postmeta m ON m.post_id = p.ID AND m.meta_key = '_price' \
WHERE p.post_type = 'product_variation' AND p.post_status = 'publish' \
AND (m.meta_value IS NULL OR m.meta_value = '')"
To samo zapytanie z '_sku' zamiast '_price' wypisze warianty niewidoczne dla czegokolwiek poza
WooCommerce. Podmień wp_ na własny prefiks tabel.
Odpowiednikiem w panelu jest otwarcie produktu, rozwinięcie każdego wariantu i przeczytanie pola ceny. Da się przy jednym produkcie, nie da się przy katalogu.
Jak naprawić
- Zdecyduj najpierw, czy ta kombinacja w ogóle ma istnieć. Większość pustych wariantów to pozostałości po przemianowanej albo usuniętej wartości atrybutu — takie się usuwa, nie wycenia.
- Jeśli ma istnieć, ustaw cenę na samym wariancie. WooCommerce nie dziedziczy ceny z produktu nadrzędnego — to nie jest mechanizm, który istnieje.
- Przy brakującym SKU trzymaj się schematu z reszty katalogu. Puste SKU jest bezpieczne wyłącznie wtedy, gdy nic dalej z SKU nie korzysta.
- Potem przegeneruj tabele pomocnicze, bo inaczej sklep dalej pokazuje stary zakres:
wp wc tool run regenerate_product_lookup_tables --user=1
- Jeśli wariant powstał przy imporcie, popraw import. Inaczej wróci przy następnym przebiegu.
Kiedy to fałszywy alarm
- Sprzedaż „cena na zapytanie”. Część sklepów B2B świadomie zostawia pustą cenę i zamienia przycisk koszyka na formularz kontaktowy. To projekt, nie usterka.
- Warianty wyceniane w locie przez wtyczkę do zestawów, subskrypcji albo konfigurator, która
wypełnia
_pricedopiero przy budowaniu koszyka. - Sklep, który nie używa SKU. Jeśli pole nie jest wypełnione nigdzie, puste SKU nie niesie żadnej informacji i znalezisko jest szumem — ukryj raz, zostanie ukryte.
- Warianty świadomie odłożone jako szkice, czekające na dostawę.
Jak znajduje to Merchlint
Merchlint odczytuje _price i _sku dla każdego wiersza typu product_variation, którego produkt
nadrzędny jest opublikowany, i zgłasza te puste albo nieistniejące. Znalezisko jest grupowane po
produkcie nadrzędnym, z liczbą dotkniętych kombinacji i ich wartościami atrybutów — widzisz więc
„Koc wełniany: 3 z 12 kombinacji”, a nie dwanaście osobnych linii.
Pewność: F — fakt z bazy. Wiersz meta jest pusty albo nie jest. Bez progu, bez interpretacji.
Ta kontrola jest w dodatku Pro.
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.