Brak GTIN w Google Merchant Center: jak znaleźć wszystkie produkty bez GTIN w PrestaShop
„Brak numeru GTIN lub nieprawidłowy numer GTIN” to jeden z najczęstszych problemów w Google Merchant Center w sklepach na PrestaShop. Sama poprawka jest prosta – wpisać właściwy kod kreskowy we właściwe pole. Trudniej znaleźć wszystkie produkty i kombinacje, których to dotyczy. W tym poradniku pokazuję, gdzie PrestaShop przechowuje GTIN, jak wypisać wszystkie braki kilkoma zapytaniami SQL i kiedy można GTIN pominąć.
Czego właściwie wymaga Google
GTIN to numer kodu kreskowego produktu: w Europie EAN-13, w Ameryce Północnej UPC, dla książek ISBN. Google używa go, żeby dopasować Twoją ofertę do właściwego produktu w swoim katalogu. Zasada dla unikalnych identyfikatorów produktu jest krótka: produkt potrzebuje poprawnego GTIN albo jednocześnie MPN i marki. W zależności od kraju i kategorii może być też konieczne jawne oznaczenie, że identyfikator nie istnieje.
W praktyce liczą się dwa szczegóły:
- Wysyłaj tylko GTIN, którego jesteś pewien. Google pisze o tym wprost. Wymyślony albo powielony kod jest gorszy niż żaden, bo podpina Twoją ofertę pod cudzy produkt.
- Dla Google każdy wariant to osobny produkt. Koszulka w 4 rozmiarach i 3 kolorach to 12 pozycji w feedzie i każda potrzebuje własnego GTIN. Jeden kod na produkcie głównym nie wystarczy.
Gdzie PrestaShop trzyma GTIN
| Typ produktu | Pole w panelu | Kolumna w bazie |
|---|---|---|
| Produkt prosty | Produkt › Szczegóły (Odniesienia) › kod kreskowy EAN-13 lub JAN | ps_product.ean13 |
| Produkt z kombinacjami | Produkt › Kombinacje › każda kombinacja › EAN-13 | ps_product_attribute.ean13 |
| Inne identyfikatory | UPC, ISBN, MPN (MPN od PrestaShop 1.7.7) | upc, isbn, mpn w tych samych tabelach |
Najczęstszy błąd: kod jest wpisany na produkcie, a sklep sprzedaje kombinacje. Większość modułów feedowych wysyła osobną pozycję dla każdej kombinacji, więc Google widzi całą rodzinę wariantów bez GTIN.
Jak znaleźć wszystkie produkty bez GTIN (SQL)
Uruchom te zapytania w phpMyAdmin albo Adminerze. Tylko odczytują dane. Zamień prefiks ps_ na swój, a id_lang = 1 / id_shop = 1 na domyślny język i sklep, jeśli są inne.
1. Produkty proste bez żadnego identyfikatora
SELECT p.id_product, p.reference, pl.name
FROM ps_product p
JOIN ps_product_lang pl
ON pl.id_product = p.id_product AND pl.id_lang = 1 AND pl.id_shop = 1
WHERE p.active = 1
AND NOT EXISTS (SELECT 1 FROM ps_product_attribute pa WHERE pa.id_product = p.id_product)
AND COALESCE(p.ean13, '') = ''
AND COALESCE(p.upc, '') = ''
AND COALESCE(p.isbn, '') = ''
ORDER BY p.id_product;
2. Kombinacje bez EAN
SELECT p.id_product, pl.name, pa.id_product_attribute,
pa.reference AS indeks_kombinacji
FROM ps_product_attribute pa
JOIN ps_product p ON p.id_product = pa.id_product
JOIN ps_product_lang pl
ON pl.id_product = p.id_product AND pl.id_lang = 1 AND pl.id_shop = 1
WHERE p.active = 1
AND COALESCE(pa.ean13, '') = ''
ORDER BY p.id_product, pa.id_product_attribute;
3. Kody o niemożliwej długości
Poprawny GTIN ma 8, 12, 13 albo 14 cyfr. Wszystko inne – indeks wklejony w złe pole, brakująca cyfra – zostanie odrzucone.
SELECT p.id_product, pl.name, p.ean13
FROM ps_product p
JOIN ps_product_lang pl
ON pl.id_product = p.id_product AND pl.id_lang = 1 AND pl.id_shop = 1
WHERE p.ean13 <> ''
AND p.ean13 NOT REGEXP '^[0-9]{8}$|^[0-9]{12,14}$';
To samo sprawdzenie zrób dla ps_product_attribute.ean13. Test długości nie weryfikuje cyfry kontrolnej, ale wyłapuje większość literówek.
Kiedy można pominąć GTIN
Nie każdy produkt ma kod kreskowy. Zwykle nie mają go rzeczy ręcznie robione, produkowane na zamówienie, vintage i produkty marki własnej sprzedawane tylko u Ciebie. Dla nich wyślij w feedzie identifier_exists = no zamiast pustej albo wymyślonej wartości i uzupełnij markę. Sprawdź, jak robi to Twój moduł feedowy: wiele modułów wysyła tę flagę tylko wtedy, gdy GTIN, MPN i marka są puste.
Nie używaj tej flagi do wyciszenia ostrzeżenia dla produktów, które mają kod na opakowaniu. Google dopasowuje produkty po kodzie, a oferty bez niego wypadają gorzej w wynikach Zakupów.
Popraw raz i pilnuj
Uzupełnienie brakujących kodów to jednorazowa praca. Utrzymanie kompletu już nie: nowe produkty, nowe rozmiary i importy od dostawców co sezon przywracają braki. Pomagają dwa nawyki:
- Dodaj kod kreskowy do szablonu importu jako wymaganą kolumnę, także na poziomie kombinacji.
- Sprawdzaj katalog przed każdą kampanią albo zmianą feedu, a nie dopiero po komunikacie z Merchant Center.
Sprawdzaj to automatycznie
Product Data Guardian robi te sprawdzenia dla całego katalogu w jednym skanie: produkty i każda kombinacja bez EAN/GTIN, brak marki, zdjęć, opisów i stanu. Każdy produkt dostaje wynik 0–100, a jedno kliknięcie pokazuje dokładnie te produkty, które trzeba poprawić. Produkty poniżej progu mogą automatycznie wypadać z feedów Google Shopping i Meta.