Snippets · WooCommerce
GTIN-Prüfziffer beim Speichern prüfen
Eine falsche Ziffer in der GTIN, und Google lehnt den Artikel ab. Dieses Snippet prüft Länge und Prüfziffer, sobald Sie ein Produkt speichern, und warnt bei ungültigen Nummern.
Worum es geht
Tippfehler in EAN- oder GTIN-Nummern fallen erst auf, wenn das Merchant Center den Artikel ablehnt – oft Wochen später.
So setzen Sie es ein
- Code einfügen und speichern.
- Ein Produkt mit GTIN öffnen und speichern. Ist die Nummer falsch, erscheint oben eine Warnung.
- Die Funktion mek7_gtin_gueltig() können Sie auch für eigene Prüfungen verwenden, etwa in einem Import.
Was das Snippet nicht kann
- Prüft nur Länge und Prüfziffer – nicht, ob die Nummer wirklich zu diesem Artikel gehört.
- Varianten werden nicht geprüft.
- Doppelte GTINs im Shop findet das Snippet nicht.
Vor dem Einbau
Testen Sie Snippets zuerst in einer Testumgebung und legen Sie eine Datensicherung an. Code ohne Gewähr.
Kopieren und einfügen
functions.php (Child-Theme) oder Snippet-Plugin
/**
* MEK7 Snippet: GTIN (EAN/UPC) beim Speichern prüfen
* Nutzt das WooCommerce-Feld „GTIN, UPC, EAN oder ISBN“ (ab WooCommerce 9.2).
*/
function mek7_gtin_gueltig( $gtin ) {
$gtin = preg_replace( '/\s+/', '', (string) $gtin );
if ( ! preg_match( '/^(\d{8}|\d{12}|\d{13}|\d{14})$/', $gtin ) ) {
return false;
}
$ziffern = array_map( 'intval', str_split( $gtin ) );
$pruef = array_pop( $ziffern );
$summe = 0;
foreach ( array_reverse( $ziffern ) as $i => $z ) {
$summe += $z * ( 0 === $i % 2 ? 3 : 1 );
}
return ( 10 - $summe % 10 ) % 10 === $pruef;
}
add_action( 'woocommerce_admin_process_product_object', function ( $product ) {
if ( ! method_exists( $product, 'get_global_unique_id' ) ) {
return;
}
$gtin = $product->get_global_unique_id( 'edit' );
if ( '' !== $gtin && ! mek7_gtin_gueltig( $gtin ) ) {
WC_Admin_Meta_Boxes::add_error( sprintf( 'Die GTIN „%s“ ist ungültig (Länge oder Prüfziffer). Google wird den Artikel ablehnen.', esc_html( $gtin ) ) );
}
} );Keine Zeit für Code?
Wir bauen das Snippet in Ihren Shop ein und testen es – zum Festpreis, sicher vor Theme-Updates im Child-Theme oder Snippet-Plugin.
Product Feed Issues Exporter
Alle Merchant-Center-Meldungen mit Artikelnummer als CSV – und bei vielen Fehlern bereinigt unser Datenservice die Daten zum Festpreis.