Merchlint
Dostępne teraz
Następne, w tej kolejności
  • DeutschDE
  • EspañolES
  • FrançaisFR
  • ItalianoIT
  • PortuguêsPT
  • NederlandsNL
  • SvenskaSV
  • TürkçeTR

Język pojawia się tutaj dopiero wtedy, gdy jego strony są naprawdę napisane. Nic na tej witrynie nie jest tłumaczone maszynowo poza kilkoma stronami po niemiecku i po hiszpańsku, których nie przejrzał jeszcze rodzimy użytkownik języka.

Zainstaluj za darmo Zainstaluj
← Wszystkie kontrole

Opublikowany, a sklep go nie pokazuje

Opublikowany i na stanie, a nie ma go na stronie sklepu, w kategoriach ani w wyszukiwarce. Na WooCommerce 11.1 i 11.2 produktu prostego nie da się nawet kupić.

Grupa
Katalog
Pewność
F — fakt z bazy danych
Wersja
Darmowa
Aktualizacja
Kod
B11

Objaw

Kategoria mówi, że ma 16 produktów, a pokazuje 2. Brakujące w panelu wyglądają dobrze: opublikowane, widoczność „Sklep i wyniki wyszukiwania”, na stanie. Nie ma ich na stronie sklepu, w kategorii ani w wynikach wyszukiwania — a otwarte z bezpośredniego adresu mają swoją stronę, z ceną.

Na WooCommerce 11.1 i 11.2 na tej stronie nie ma przycisku Dodaj do koszyka: produktu prostego w takim stanie nie da się kupić wcale, nawet klientowi, który trafi na niego z linku albo z reklamy.

Przyczyną jest pole, którego panel nigdy nie pokazuje: rodzic produktu (post_parent). WordPress używa go przy stronach i załącznikach, WooCommerce przy wariantach. Produkt prosty w ogóle go nie używa, ale może go mieć: import CSV wpisuje go z kolumny „Nadrzędny” (w angielskim pliku „Parent”), a REST API przy tworzeniu produktu przyjmuje dowolny parent_id, nie sprawdzając, czy taki wpis istnieje — tędy produkty tworzą Zapier i podobne integracje. Gdy rodzic nie istnieje albo nie jest opublikowany, WooCommerce ukrywa produkt.

Ile to kosztuje

  • Produkty, których nikt nie znajdzie. Klienci przeglądają kategorie i szukają. Produkt, którego nie ma w żadnym z tych miejsc, sprzedaje się tylko komuś, kto już ma do niego link.
  • Na WooCommerce 11.1 i 11.2 nawet jemu nie. Produktu prostego ukrytego w ten sposób nie da się dodać do koszyka, więc ruch, za który zapłacono — reklama, newsletter — trafia na cenę bez przycisku.
  • Nic w panelu na to nie wskazuje. Produkt jest opublikowany, widoczny i na stanie. Edycja niczego nie zmienia, bo zapis produktu wpisuje z powrotem tego samego rodzica. Jedyny ślad to licznik kategorii, który nie zgadza się z listą.

Ile z tego dotyczy Twojego sklepu, zależy od wersji WooCommerce. Wersja 11.1 zaczęła wymagać, żeby rodzic był opublikowany, nawet gdy numer rodzica wskazuje wpis, którego nie ma. Poprawka jest scalona do 11.3: od tej wersji liczy się tylko rodzic, który jest produktem albo wariantem.

WooCommerceRodzica nie ma albo nie jest produktemRodzic to nieopublikowany produkt
do 11.0bez skutkuznika z list, da się go kupić z adresu
11.1 i 11.2znika z list, nie da się go kupićznika z list, nie da się go kupić
od 11.3bez skutkuznika z list, nie da się go kupić

„Nie da się go kupić” dotyczy produktów prostych. Produkt wariantowy ukryty w ten sposób w naszych testach dalej sprzedawał warianty ze swojej strony.

Jak to sprawdzić samodzielnie

Bez dostępu do bazy — przez publiczne Store API sklepu. Otwórz ten adres z domeną swojego sklepu:

https://example.com/wp-json/wc/store/v1/products?per_page=100

Dopisz &category=ID, żeby zobaczyć jedną kategorię, &page=2 po następną setkę. Na WooCommerce 11.1 lista dalej zawiera produkty, które strona sklepu pomija, a każdy ma pole "parent". Produkt prosty powinien mieć "parent": 0 — każda inna liczba przy produkcie, którego brakuje w kategorii, to ten problem.

Z bazy — zapytanie wypisuje opublikowane produkty, których rodzic nie istnieje albo nie jest opublikowany:

wp db query "SELECT p.ID, p.post_title, p.post_parent,
    r.post_type AS parent_type, r.post_status AS parent_status
  FROM wp_posts p
  LEFT JOIN wp_posts r ON r.ID = p.post_parent
  WHERE p.post_type = 'product' AND p.post_status = 'publish'
    AND p.post_parent <> 0
    AND (r.ID IS NULL OR r.post_status <> 'publish')"

NULL w parent_type znaczy, że rodzica nie ma. Wynik czytaj z tabelą wyżej: na WooCommerce 11.0 i starszym oraz od 11.3 rodzic, którego nie ma albo który nie jest produktem, niczego nie ukrywa, więc na tych wersjach taki wiersz nie jest problemem. Wariantów zapytanie nie wypisuje — dla nich rodzic jest czymś normalnym.

Z panelu — porównaj licznik w Produkty → Kategorie z liczbą produktów na stronie kategorii, potem otwórz brakujący produkt z jego adresu. Na 11.1 i 11.2 produkt prosty pokazuje cenę bez przycisku Dodaj do koszyka.

Jak to naprawić

  1. Usuń rodzica: produkt potrzebuje post_parent równego 0. Edytor produktu nie ma takiego pola, a zapis produktu wpisuje z powrotem tego samego rodzica.

  2. Pojedynczo, przez WP-CLI: wp post update ID --post_parent=0, gdzie ID to numer produktu.

  3. Wiele produktów naraz: najpierw zrób kopię bazy, potem uruchom to zapytanie w phpMyAdmin albo w narzędziu do bazy danych u hostingodawcy. Zeruje rodzica każdego produktu, którego rodzic nie istnieje albo nie jest opublikowany; jeśli nazwy Twoich tabel nie zaczynają się od wp_, zmień przedrostek.

    UPDATE wp_posts p
    LEFT JOIN wp_posts r ON r.ID = p.post_parent
    SET p.post_parent = 0
    WHERE p.post_type = 'product'
      AND p.post_parent <> 0
      AND (r.ID IS NULL OR r.post_status <> 'publish');
  4. Jeśli rodzic to jeden z Twoich produktów, tylko nieopublikowany, jego publikacja też przywróci ukryte produkty — najpierw sprawdź, czy powinien być w sklepie.

  5. Potem znajdź, co wpisało rodzica: import CSV z wypełnioną kolumną „Nadrzędny” („Parent”) albo narzędzie, które tworzy produkty przez REST API (Zapier, integracja) i wysyła parent_id. Inaczej następny import przywróci problem.

Rodzic, który nie istnieje, przestaje ukrywać produkty od WooCommerce 11.3. Nie czekaj na to: do aktualizacji te produkty się nie sprzedają, a rodzic, który jest nieopublikowanym produktem, ukrywa je w każdej wersji.

Kiedy to fałszywy alarm

Praktycznie nigdy. WooCommerce ukrywa produkt przed klientami niezależnie od Twoich zamiarów. Jeśli i tak nie chcesz go w sklepie, ustaw go jako szkic, żeby nie liczył się jako opublikowany.

Co trzyma tę kontrolę w ryzach tam, gdzie ma milczeć: rodzic, który w Twojej wersji WooCommerce niczego nie robi, nie jest znaleziskiem. Do 11.0 rodzic, którego nie ma, niczego nie ukrywa, a od 11.3 nie ukrywa też rodzic, który nie jest produktem — zapytanie wyżej takie produkty wypisze, Merchlint nie. Warianty pomijamy, bo dla nich rodzic jest czymś normalnym.

Jak znajduje to Merchlint

Merchlint bierze każdy opublikowany produkt, który ma rodzica — jednym zapytaniem w całym katalogu, z dołączonym rodzicem — a rozstrzygnięcie zostawia WooCommerce. Od wersji 11.1 pyta WooCommerce, czy produkt jest publicznie widoczny — tego sprawdzenia WooCommerce używa przy listach produktów i przy koszyku — bez Twoich uprawnień administratora, więc odpowiedź jest taka, jaką dostaje klient, choć audyt działa z konta administratora. Od 11.3 to sprawdzenie pomija rodzica, który nie jest produktem, a ta reguła idzie za nim. Przed 11.1 Merchlint stosuje zasadę tamtych wersji: produkt jest ukryty tylko wtedy, gdy jego rodzic jest produktem albo wariantem i nie jest opublikowany.

Znalezisko pokazuje ID rodzica, co jest z rodzicem nie tak — nie istnieje albo nie jest opublikowany — a gdy rodzic istnieje, także jego typ i status publikacji słowami WordPressa. Na końcu to, co dostaje klient: produkt ukryty na stronie sklepu, w kategoriach i w wyszukiwarce, a przy produkcie prostym na WooCommerce 11.1 i nowszym także „nie da się go kupić”.

Pewność: F — fakt z bazy, a rozstrzyga sam WooCommerce.

Nowa w wersji 0.3.7. Status i widoczność w katalogu, które czyta Sprzedają się, ale są ukryte z katalogu, są przy tych produktach w porządku — tamta kontrola ich nie widzi.

Ta kontrola działa w wersji darmowej, na każdym produkcie, bez limitu.

Uruchom tę kontrolę w swoim sklepie

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.