Desde la versión 9.2 WooCommerce incorpora un campo propio, nativo, para incluir códigos del tipo EAN, ISBN, GTIN o UPC, para que la gente no use el campo SKU, inicialmente pensado con otros objetivos.
¿Para qué sirve el campo de códigos GTIN, UPC, EAN, ISBN de WooCommerce?
Los tipos de numeración EAN, GTIN, ISBN o UPC son códigos únicos, para distintos usos, que sirven para identificar globalmente productos, como por ejemplo libros (ISBN), o cualquier otro tipo (EAN), interesante para que los clientes puedan identificar rápidamente productos que conocen, para la gestión de inventario y muchos otros útiles usos.
Si quieres saber en concreto para qué sirve cada código aquí explico las diferencias entre EAN, GTIN, ISBN, GTIN, etc.
¿Qué problema había con el SKU… y ahora con el resto de códigos?
Durante años, como en WooCommerce no había un campo dedicado para estos usos, muchos gestores de tienda han estado utilizando el campo de SKU como sustituto de esta carencia, pero es una mala idea por varios motivos, siendo el principal el que el campo SKU y los otros códigos no comparten datos estructurados, son cosas distintas de cara a los microdatos de los buscadores.
Datos estructurados Schema.org
De hecho hay una propiedad distinta de schema.org para cada uno de estos códigos, así que ni siquiera el planteamiento actual de un único campo para todos estos códigos es correcto, al menos mientras no se pueda seleccionar cuál se quiere utilizar.
Por ejemplo, el EAN es un código de 13 dígitos (GTIN13) mientras que UPC lo es de 12 (GTIN12), y del resto el único que coincide es el ISBN, también de 13 dígitos. En lo único que se parecen es en que no deben incluir letras, solo números y/o guiones.
De todos modos de momento ningún problema de compatibilidad, porque se han dado tanta prisa para añadir el nuevo campo que nadie se ha acordado de que WooCommerce genere microdatos de schema.org para ello, como sí hace con el resto de datos estructurados, como el SKU, la imagen, precio, valoraciones, etc.
Como puedes comprobar en las capturas anteriores, WooCommerce genera datos estructurados (JSON) para schema.org, que leen los buscadores como Google para mostrar microdatos en las búsquedas (precios, estrellitas, etc.) además de para validar las páginas como que cumplen con schema.org.
Pero no genera todos, porque aún no añade lo introducido en el campo de GTIN, EAN, ISBN, UPC, y sí el resto.
Visualización de GTIN, EAN, ISBN, UPC
De paso, también a alguien se le olvidó que, por lo menos el tema por defecto y recomendado por WooCommerce.com para WooCommerce, StoreFront, muestre los números GTIN, EAN, ISBN, UPC, o al menos ofrezca la opción de mostrarlos, que sería lo ideal, de paso permitiendo indicar a qué representa, en cada producto y/en general.
Pero no, también falta.
Búsquedas de GTIN, EAN, ISBN, UPC
También echarás de menos poder buscar productos por el GTIN, ISBN, EAN, UPC, algo que tampoco está incorporado, ni en al administración ni en la web, es como si no existiese.
Exportar e importar GTIN, EAN, ISBN, UPC
Y, como no, otra cosa que a todo el mundo se le ha olvidado es que al exportar e importar productos se incluyan los GTIN, EAN, ISBN, UPC, si los hubiera, algo fundamental.
Afortunadamente, en este caso, avisé en soporte de WooCommerce y me facilitaron un código con el que se soluciona, este:
/* Exportar e importar EANs etc de Woo */
//Añadimos la columna personalizada a las columnas a exportar
add_filter('woocommerce_product_export_column_names', 'add_custom_gtin_export_column');
function add_custom_gtin_export_column($columns) {
$columns['global_unique_id'] = 'GTIN/UPC/EAN/ISBN';
return $columns;
}
//Llenamos la columna personalizada con los datos a exportar
add_filter('woocommerce_product_export_product_row', 'add_custom_gtin_export_row', 10, 3);
function add_custom_gtin_export_row($row, $product, $product_id) {
$gtin_value = get_post_meta($product_id, '_global_unique_id', true);
$row['global_unique_id'] = !empty($gtin_value) ? $gtin_value : '';
return $row;
}
//Añadimos la columna personalizada a las opciones de asignación del importador de WooCommerce
add_filter('woocommerce_csv_product_import_mapping_options', 'add_custom_gtin_import_mapping_option');
function add_custom_gtin_import_mapping_option($options) {
$options['global_unique_id'] = 'GTIN/UPC/EAN/ISBN';
return $options;
}
//Asignamos la columna personalizada a la clave meta durante la importación
add_filter('woocommerce_csv_product_import_mapping_default_columns', 'map_custom_gtin_import_column');
function map_custom_gtin_import_column($columns) {
$columns['GTIN/UPC/EAN/ISBN'] = 'global_unique_id';
return $columns;
}
//Gestionamos la importacion de la columna personalizada
add_action('woocommerce_product_import_inserted_product_object', 'save_custom_gtin_during_import', 10, 2);
function save_custom_gtin_during_import($product, $data) {
if (!empty($data['global_unique_id'])) {
$product->update_meta_data('_global_unique_id', sanitize_text_field($data['global_unique_id']));
$product->save(); // Save changes to the product object
}
}
Antes de añadir el código no hay manera, WooCommerce no exporta los GTIN, EAN, ISBN, UPC aunque existan.
Pero una vez añadido el código sí exporta e importa el nuevo campo.
¿Entonces para qué sirve el nuevo campo de GTIN, EAN, ISBN, UPC?
De momento hay que ser sincero y para bien poco, porque…
- No genera los microdatos estructurados de Schema.org para que las páginas de producto validen y estos campos sean reconocidos.
- No se puede hacer edición rápida, como con el SKU.
- No se pueden exportar/importar salvo con un apaño de código (ver arriba).
- No se puede buscar en la administración por GTIN, EAN, ISBN, UPC.
- No se puede buscar en la tienda por GTIN, EAN, ISBN, UPC.
- El tema por defecto, StoreFront, no muestra en la página de producto el GTIN, EAN, ISBN, UPC.
Yo he avisado de todo esto, y espero pronto veamos soluciones, porque la idea del campo es buena, pero de momento totalmente inútil. Ahora mismo es completamente más útil utilizar plugins para mostrar códigos GTIN, EAN, ISBN, UPC.
Ahora mismo simplemente se archiva internamente en la base de datos con el identificador _global_unique_id, y sí, puede ser recuperado mediante funciones, pero no es lo más intuitivo ¿no te parece?, sobre todo si ya hay plugins que ofrecen estos campos totalmente integrados.
¿Cuál sería la mejor solución para los campos numéricos de GTIN,EAN, ISBN, UPC?
A ver, no soy experto en numerología ni en identificación global de códigos pero soy comprador, incluso también vendedor, y de cara a incorporar un campo de este tipo en WooCommerce se deberían garantizar algunos básicos:
- Fácilmente incorporable visualmente en la página del producto e incluso en el catálogo, pudiendo elegir qué texto mostrar, tanto globalmente como por producto, por excepción.
- Que se pueda buscar en la administración y la tienda.
- Que se pueda hacer edición rápida y por lotes.
- Que se pueda exportar/importar por defecto.
- Que al añadirlo se pueda elegir qué código se usará (GTIN, EAN, ISBN, UPC) con validación de cantidad de caracteres según lo elegido.
- Que se genere la propiedad correcta de schema.org según el código elegido.
¿O seguimos con plugins?
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!





















Hola, Fernando
Gracias siempre por tus sabios consejos. A raíz de leerte y pensando en mi propio caso, te pregunto… ¿Habría alguna manera de generar un código de barras y asignarlo en cada pedido recibido, mediante snippet o plugin?
En mi caso, me gustaría generar un código de barras o qr para después imprimir esos pedidos y llevar un control en un programa que tenemos de gestión de los pedidos, ya que realmente son inscripciones a un concurso, no pedidos de productos, por lo que sería el caso contrario…
Si no viene a colación ni respondas, se me ocurrió preguntarte
Espero haberte entendido bien. ¿Algo como este plugin?
Siiiii, eso es lo que buscaba. Lo importante no es saber si leer al que sabe para aprender de el. Gracias sabio…. eres el mejor
Eh, que ese dicho no me lo sabía yo así 😀
no yo
Hola Fernando,
Excelente post, ya consigo exportar todos los datos de EAN de mis productos en woocommerce, sin embargo no soy capaz de importarlos. No me aparece ningún campo nuevo en el desplegable de asignación de campos csv a los productos, sigo sin ver nada que parezca el EAN.
Igual es muy básico el error que estoy cometiendo, soy nuevo en estas lides. Gracias, un saludo,
Hola Fran, pues tendría que probar el CSV para decirte algo ¿lo has consultado con el soporte de WooCommerce?
No creo que dependa del CSV, lo que no me aparece es el campo destino en el desplegable para poder mapear el campo del CSV. Creo que voy a optar por subirlo con la api de woocommerce, que parece más sencillo. Gracias 😉
Hola, se puede conseguir con el módulo WP All Import y actualizando el campo _global_unique_id
Te pongo este ejemplo de vídeo para que entiendas como funciona, es bastante difícil de asimilar al principio
https://www.youtube.com/watch?v=RgY_IKKrYBw&list=PLenDTPvsreTyru2U1hIkzGn20EE-fyPLy&index=9&ab_channel=Soflyy.
No es posible con el módulo de YITH WooCommerce Bulk Product Editing Premium, al menos no de una manera intuitiva.
Debería ser nativo en WooCommerce, pero aún queda mucho por desarrrollar.