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.

Zainstaluj za darmo
← Wszystkie kontrole

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ę.

Grupa
Identyfikatory produktów
Pewność
F — fakt z bazy danych
Wersja
Darmowa
Aktualizacja
Kod
G3b

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.

Film, 1:10 — EAN/GTIN w WooCommerce: dlaczego produkty wypadają z feedu

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ć

  1. Ustal, do którego produktu numer naprawdę należy — rozstrzyga opakowanie, nie historia zamówień.
  2. Wyczyść pole w drugim i wpisz jego własny numer. Lepiej zostaw puste, niż zgaduj.
  3. 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ć.
  4. 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.

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.