Zamknięta wtyczka WooCommerce UPC, EAN, and ISBN? Twoje kody GTIN są nadal w bazie
Tę wtyczkę i Product GTIN (EAN, UPC, ISBN) for WooCommerce zamknięto w katalogu WordPress.org — żadna z nich nie dostaje już stamtąd aktualizacji. Kody, które wpisałeś w ich pola, nie zniknęły, ale WooCommerce ich nie czyta, bo ma teraz własne pole GTIN. Niżej opisujemy, jak przenieść do niego kody i przy okazji je sprawdzić. Cały sposób przetestowaliśmy na WooCommerce 11.2.1.
Ta strona dotyczy dwóch wtyczek, które dodawały do WooCommerce pole GTIN, zanim WooCommerce miało własne: WooCommerce UPC, EAN, and ISBN i Product GTIN (EAN, UPC, ISBN) for WooCommerce. Jeśli Twój sklep korzystał z którejś z nich, kody nadal są w polu tej wtyczki, ale WooCommerce używa dziś własnego pola.
Co się stało z tymi wtyczkami
- WooCommerce UPC, EAN, and ISBN (ostatnia wersja 0.5.1) została zamknięta 23 października 2025 na
prośbę autora. Na jej stronie w katalogu czytamy:
„Zamknięcie jest trwałe”. Kody zapisywała w
hwp_product_gtinprzy produktach i whwp_var_gtinprzy wariantach. - Product GTIN (EAN, UPC, ISBN) for WooCommerce (ostatnia wersja 1.1.1) została zamknięta 5 stycznia
2023. Jej strona w katalogu
podaje powód: „Problem bezpieczeństwa”. Kody zapisywała w
_wpm_gtin_code, zarówno przy produktach, jak i przy wariantach.
Zamkniętej wtyczki nie da się już pobrać ani zaktualizować z WordPress.org. Jeśli wtyczka jest już zainstalowana, działa jak dotąd. Kody przetrwają nawet usunięcie wtyczki: żadna z nich nie kasuje swoich danych przy odinstalowaniu (sprawdziliśmy to w kodzie źródłowym obu wtyczek).
Product GTIN for WooCommerce została zamknięta z powodu problemu z bezpieczeństwem i od tamtej pory nie dostała w WordPress.org żadnej aktualizacji. Jeśli jest u Ciebie włączona, wyłącz ją teraz. Do niczego, co opisujemy niżej, nie jest potrzebna: kody zostają w bazie, a eksport WooCommerce odczyta je bez niej.
Ta witryna należy do Merchlinta — osobnej wtyczki do audytu katalogu produktów. Merchlint nie jest powiązany z żadną z tych wtyczek ani z ich autorami, a nazwy wtyczek podajemy wyłącznie po to, żeby było jasne, w polu której z nich są Twoje kody. Merchlint nie zastępuje tych wtyczek: pole GTIN, które dodawały, jest dziś częścią samego WooCommerce.
Gdzie WooCommerce chce mieć kod
Od wersji 9.2 WooCommerce ma własne pole. Otwórz produkt i wejdź w Dane produktu → Magazyn: pod SKU jest
pole GTIN, UPC, EAN, lub ISBN. Każdy wariant ma takie samo pole w zakładce Warianty. WooCommerce
zapisuje je jako _global_unique_id, w pliku CSV produktów to kolumna „GTIN, UPC, EAN lub ISBN”, a od
wersji 9.3 WooCommerce wstawia kod do danych strukturalnych strony produktu dla Google. Więcej o tym polu:
produkt WooCommerce bez kodu GTIN.
WooCommerce nie zna pól starych wtyczek. Zapisanych w nich kodów nie ma w polu WooCommerce, w kolumnie „GTIN, UPC, EAN lub ISBN” eksportu ani w tym, co WooCommerce wysyła do Google. Dopóki stara wtyczka jest włączona, sama wstawia swój kod do danych strukturalnych strony produktu (więcej w części Po przeniesieniu). Gdy stara wtyczka jest wyłączona albo usunięta, do jej pola zagląda już tylko wtyczka feedu — jeśli ktoś ustawił ją na to pole.
Żeby policzyć kody, które zostały w starych polach, uruchom w WP-CLI:
wp db query "SELECT meta_key, COUNT(*) FROM wp_postmeta \
WHERE meta_key IN ('hwp_product_gtin','hwp_var_gtin','_wpm_gtin_code') \
AND TRIM(meta_value) <> '' GROUP BY meta_key"
Zamiast wp_ wpisz prefiks tabel swojego sklepu.
Co WooCommerce przyjmie, a czego nie
Stare wtyczki zapisywały kod tak, jak go wpisano. Pole WooCommerce sprawdza jedno, ale nie drugie. Obie sprawy przetestowaliśmy 19 października 2026 na WooCommerce 11.2.1:
- Kod, który ma już inny produkt, zostaje odrzucony z komunikatem Nieprawidłowy lub zduplikowany numer GTIN, UPC, EAN lub ISBN. W imporcie przepada cały wiersz, a produkt zostaje z pustym polem. Dwa produkty z jednym kodem to zwykle znak, że jeden z nich ma zły kod.
- Kod ze złą cyfrą kontrolną przechodzi. WooCommerce jej nie sprawdza, więc kod z literówką zapisuje się bez ostrzeżenia, a zgłasza go dopiero Google Merchant Center.
Zapisując kod, WooCommerce zostawia w nim tylko cyfry, myślniki i końcowe X, a do Google wysyła wyłącznie kody mające 8, 12, 13 albo 14 cyfr (które kody docierają do Google). Dlatego sprawdź kody przed przeniesieniem, nie po nim.
Przeniesienie: eksport, sprawdzenie, import
Wystarczą eksport i import wbudowane w WooCommerce, niczego nie trzeba instalować.
- Eksport. W menu Produkty kliknij Eksportuj nad listą, zaznacz Tak, eksportuj wszystkie niestandardowe dane przy pytaniu Eksportować niestandardowe dane? i kliknij Wygeneruj plik CSV. Stare kody trafią do kolumn Pola: hwp_product_gtin i Pola: hwp_var_gtin (WooCommerce UPC, EAN, and ISBN) albo Pola: _wpm_gtin_code (Product GTIN for WooCommerce). W angielskim panelu te kolumny zaczynają się od „Meta:”. Stara wtyczka nie musi być włączona.
- Otwórz plik tak, żeby kody nie zamieniły się w liczby. Jeśli otworzysz plik dwuklikiem, Excel pokaże 13-cyfrowy kod jako 5,90123E+12 i zgubi zero na początku kodu UPC, a gdy zapiszesz plik, tych cyfr już nie odzyskasz. W Excelu użyj Dane → Z tekstu/pliku CSV i w oknie podglądu wyłącz wykrywanie typów danych. W Arkuszach Google użyj Plik → Importuj i odznacz zamianę tekstu na liczby i daty.
- Przygotuj plik do importu: dwie kolumny i tylko wiersze z kodem. Pierwsza kolumna to ID. Druga nazywa się GTIN, UPC, EAN lub ISBN i ma stary kod. Przy Product GTIN for WooCommerce to po prostu kolumna Pola: _wpm_gtin_code ze zmienioną nazwą. Przy WooCommerce UPC, EAN, and ISBN kody produktów są w kolumnie Pola: hwp_product_gtin, a kody wariantów w Pola: hwp_var_gtin. Przenieś je do jednej kolumny — kody wariantów pod kodami produktów — tak, żeby każdy kod stał w wierszu ze swoim ID. Usuń każdy wiersz bez kodu: w imporcie, który aktualizuje istniejące produkty, pusta komórka kasuje kod wpisany już w pole WooCommerce — widzieliśmy to w teście. Pomiń też produkty, które mają już kod w polu WooCommerce (kolumna GTIN, UPC, EAN lub ISBN w eksporcie), chyba że chcesz go zastąpić starym.
- Sprawdź plik. Zapisz go jako CSV i wybierz w narzędziu Sprawdź kody EAN. Narzędzie samo znajdzie kolumnę po nazwie i wypisze kody ze złą cyfrą kontrolną, ze złą liczbą cyfr i powtórzone — każdy z numerem wiersza. Zły kod przepisz jeszcze raz z opakowania. Jeśli dwa produkty mają ten sam kod, sprawdź oba — zwykle jeden z nich ma zły. Plik nie opuszcza przeglądarki.
- Import. W menu Produkty kliknij Importuj, wybierz plik, zaznacz Zaktualizuj istniejące produkty i kliknij Kontynuuj. Na ekranie Mapowanie kolumn przypisz kolumnę GTIN, UPC, EAN lub ISBN do pola o tej samej nazwie sam: WooCommerce 11.2 nie robi tego automatycznie nawet dla własnej kolumny (woocommerce#68736). ID przypisze się samo. Potem kliknij Uruchom importer.
- Przeczytaj log importu. Ostatni ekran podaje, ilu produktów nie udało się zaimportować, a po kliknięciu Wyświetl log importu zobaczysz ich listę. WooCommerce odrzuciło kod każdego produktu, przy którym przyczyna niepowodzenia brzmi Nieprawidłowy lub zduplikowany numer GTIN, UPC, EAN lub ISBN. Pole takiego produktu nadal jest puste. Więcej o logu: import produktów z CSV: co sprawdzić po imporcie.
Taki import przeprowadziliśmy na WooCommerce 11.2.1 z produktami prostymi i wariantami: kody trafiły do pola WooCommerce, warianty zostały przy swoich produktach, choć w pliku nie było kolumny „Nadrzędny”, a powtórzony kod został odrzucony tak, jak opisaliśmy wyżej.
Po przeniesieniu
- Przestaw feed na pole WooCommerce. Jeśli wtyczka feedu czytała stare pole, nadal wysyła z niego stare
kody — także błędne, które właśnie poprawiłeś w WooCommerce. Pole WooCommerce to
_global_unique_id. - Na koniec wyłącz i usuń starą wtyczkę, jeśli jeszcze działa. Dopóki jest włączona, wstawia do danych strukturalnych strony produktu kod ze swojego pola zamiast kodu z WooCommerce. Sprawdziliśmy to z kodem źródłowym obu wtyczek na WooCommerce 11.2.1: kod poprawiony w WooCommerce nie trafił na stronę, a gdy opróżniliśmy stare pole, strona podawała Google pusty GTIN.
- Stare pola mogą zostać w bazie. Gdy wtyczki nie ma, zagląda do nich już tylko feed, który nadal jest na nie ustawiony.
Sprawdzenie wszystkich produktów po imporcie
Nie musisz robić kolejnego eksportu. Merchlint wypisze
produkty i warianty, które mają puste pole GTIN w WooCommerce — także te
odrzucone przez importer — oraz kody użyte w więcej niż jednym produkcie.
Obie kontrole są w darmowej wersji Merchlinta dla WooCommerce. Jeśli część
numerów została w starych polach, kontrola braku GTIN mówi o tym w notatce: ile produktów ma numer
tylko w hwp_product_gtin, hwp_var_gtin albo _wpm_gtin_code i które to pole (dwa pola hwp_
od wersji 0.3.9).