Dwa produkty mają ten sam GTIN
GTIN ma nazywać jeden towar na świecie. Gdy niosą go dwa produkty, porównywarka albo odrzuci ofertę, albo sklei oba w jedną pozycję.
Objaw
Produkt, którego nie ruszałeś, znika z porównywarki, albo dwa różne towary z Twojego sklepu lądują w jednej ofercie z niewłaściwym zdjęciem. W panelu wszystko wygląda dobrze: oba produkty istnieją, oba mają identyfikator, a WooCommerce nie zaprotestowało przy zapisie — bo nie zapisano ich przez ekran produktu.
Ile to kosztuje
Identyfikator istnieje po to, żeby nazywać dokładnie jeden towar handlowy na całym świecie. Gdy niosą go dwa Twoje produkty:
- Oferta zostaje odrzucona. Merchant Center traktuje powielony identyfikator jako błąd danych i zdejmuje jedną albo obie oferty.
- Dwa produkty stają się jedną ofertą. Porównywarka je skleja, więc klient klikający w Twój tańszy towar trafia na stronę tego drugiego.
- Stany i zwroty trafiają w niewłaściwy wiersz. Cokolwiek dopasowuje zamówienia do produktów po identyfikatorze, wybierze to, co znajdzie pierwsze.
Jeśli przyszedłeś tu z powodu feedu, to jeden z kilku wymogów, które zdejmują produkty bez słowa. Dlaczego produkty wypadają z feedu przechodzi pozostałe tak samo, z zapytaniem do każdego.
Jak sprawdzić to samodzielnie
Z WP-CLI, bez żadnej wtyczki:
wp db query "SELECT TRIM(meta_value) AS gtin, COUNT(*) AS n \
FROM wp_postmeta pm JOIN wp_posts p ON p.ID = pm.post_id \
WHERE pm.meta_key = '_global_unique_id' AND TRIM(pm.meta_value) <> '' \
AND p.post_type IN ('product','product_variation') \
AND p.post_status IN ('publish','draft','private') \
GROUP BY TRIM(meta_value) HAVING n > 1"
Podmień wp_ na swój przedrostek tabel. Puste wartości są wyłączone celowo — dwadzieścia produktów
bez identyfikatora to nie dwadzieścia duplikatów.
Jak to naprawić
- Ustal, do którego produktu numer naprawdę należy — rozstrzyga opakowanie, nie historia zamówień.
- Wyczyść pole w drugim i wpisz jego własny numer. Lepiej zostaw puste, niż zgaduj.
- Jeśli oba są wariantami tego samego produktu, sprawdź, czy jeden nie jest pozostałością po skasowanej wartości atrybutu; takie zwykle lepiej usunąć, niż przenumerować.
- Napraw import, który to wyprodukował. Powielony identyfikator prawie zawsze bierze się z kolumny arkusza przeciągniętej o wiersz za daleko — i wraca przy następnym imporcie.
Kiedy to fałszywy alarm
- Tłumaczenia jednego produktu. Przy WPML albo Polylang jeden towar mieszka w kilku wpisach, które dzielą identyfikator całkiem poprawnie. Merchlint liczy grupę tłumaczeń jako jeden produkt; jeśli masz inny układ wielojęzyczny, ukryj znalezisko.
- Wielopaki wyceniane na sztukę. Część sklepów wystawia ten sam towar w kilku wielkościach opakowania. Ściśle rzecz biorąc każda potrzebuje własnego GTIN-u, ale dopóki ich nie masz, jest to stan znany, a nie pomyłka.
- Szkic zastępczy, który przygotowujesz dla istniejącego produktu przed wycofaniem oryginału.
Jak Merchlint to znajduje
Merchlint czyta _global_unique_id opublikowanych produktów i ich wariantów, grupuje po
dokładnej wartości po obcięciu spacji, pomija puste i zgłasza każdy produkt, który dzieli numer
z innym produktem, z wariantem innego produktu albo z własnym wariantem. Zbiór liczony jest raz
dla całego sklepu, a nie na partię — duplikat, którego bliźniak siedzi w innej części katalogu,
nadal jest duplikatem. Warianty leżące w koszu nie liczą się nigdy.
Jeden przypadek zostaje poza kontrolą: dwa warianty jednego produktu z tym samym numerem, gdy sam produkt nie ma żadnego. Znalezisko należy do produktu, a tam nie ma go do czego przypiąć.
Skąd się bierze produkt i jego własny wariant z tym samym numerem. Importery budują produkt wariantowy, klonując jego pierwszy wariant albo kopiując na niego pola rodzica — i numer jedzie razem z resztą. WooCommerce nie przyjąłby takiej pary przy zapisie produktu z panelu (od 9.2 pole musi być unikalne w obrębie produktów i wariantów), ale import zapisuje ją wprost do bazy, więc nic tego nie zgłasza. Ma to znaczenie, gdy Twój feed eksportuje rodzica razem z wariantami: wtedy wychodzą dwie pozycje z jednym numerem. Bezpieczna naprawa to wyczyszczenie numeru na rodzicu — produkt wariantowy ocenia się po jego wariantach.
Tłumaczenia są rozstrzygane przed grupowaniem: dwie wersje językowe jednego produktu liczą się jako jedna, więc sklep dwujęzyczny nie dostaje dwóch znalezisk na każdą przetłumaczoną parę.
W odróżnieniu od kontroli braku identyfikatora ta nie ma progu katalogowego. Brak bywa świadomym wyborem; duplikat nigdy nim nie jest — ktoś musiał wpisać ten sam numer dwa razy.
Pewność: F — fakt z bazy danych. Bez interpretacji, bez progu.
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.