Si quieres subir el catálogo de productos de tu tienda a Google Merchant, uno de los campos imprescindibles para que esta herramienta te apruebe el feed de productos es el GTIN (Global Trade International Number), es decir, lo que conocemos como código de barras y que en Europa es el EAN o ISBN para libros. Pero ese campo no está en WooCommerce por defecto.
Para saber más sobre los distintos código de producto que existen (SKU, EAN, UPC, GTIN, ISBN, ISSN) y si eres de los que el código te da miedito, echa un ojo al artículo que ha publicado Fernando Tellado «SKU, EAN, UPC, GTIN, ISBN, ISSN – Qué son estos códigos y cómo añadirlos en WooCommerce».
Pero si eres de los que les gusta el código y prefieres no cargar tu web con plugins innecesarios, este es tu artículo.
La idea es simple, crear un campo adicional en el que almacenar este valor para luego poder pasárselo al feed de Google Merchant. Recuerda que este valor es IMPRESCINDIBLE, repito, I M P R E S C I N D I B L E, si no lo pasas o no es correcto, Google Merchant te devolverá un error y, o bien tus fichas no rendirán (no se mostrarán) todo lo que debieran, o bien los productos no se podrán mostrar en anuncios de shopping o de remarketing dinámico (display), las fichas gratuitas y/o las fichas locales gratuitas.
Agregar el campo GTIN
La idea es crear un campo adicional que veremos en el backoffice de nuestros productos y que nos servirá para escribir en él el valor del código GTIN de nuestro producto y también guardarlo en la BBDD. Por cierto si tienes interés en saber donde se guarda es en la tabla wp_postmeta de la BBDD de tu WordPress. 🙂
Para ello deberemos de añadir a nuestro plugin de funcionalidades el siguiente snippet:
<?php
// Añadir un campo GTIN en la ficha de producto
// Primero creamos el campo GTIN en la ficha de producto de WooCommerce
function cmdh_woocommerce_render_gtin_field() {
$input = array(
'id' => '_gtin',
'label' => sprintf(
'<abbr title="%1$s">%2$s</abbr>',
__( 'Global Trade Identification Number','carlosmdh' ),
__( 'GTIN (EAN, ISBN UPC)', 'carlosmdh' )
),
'value' => get_post_meta( get_the_ID(), '_gtin', true ),
'desc_tip' => true,
'description' => __( 'En este campo debes añadir el GTIN (UPC, EAN, ISBN...)', 'carlosmdh' ),
);
?>
<div id="gtin_attr" class="options_group">
<?php woocommerce_wp_text_input( $input ); ?>
</div>
<?php
}
// En la siguiente línea añadimos el campo GTIN a la pestaña «General» del panel de datos de WooCommerce
add_action( 'woocommerce_product_options_general_product_data', 'cmdh_woocommerce_render_gtin_field');
// Ahora vamos a guardar el valor numérico del GTIN, si los hemos definido, en la tabla wp_postmeta */
function cmdh_woocommerce_save_gtin_field( $product_id ) {
if (
! isset( $_POST['_gtin'], $_POST['woocommerce_meta_nonce'] )
|| ( defined( 'DOING_AJAX' ) && DOING_AJAX )
|| ! current_user_can( 'edit_products' )
|| ! wp_verify_nonce( $_POST['woocommerce_meta_nonce'], 'woocommerce_save_data' )
) {
return;
}
$gtin = sanitize_text_field( $_POST['_gtin'] );
update_post_meta( $product_id, '_gtin', $gtin );
}
add_action( 'woocommerce_process_product_meta','cmdh_woocommerce_save_gtin_field' );
?>
Conclusión
Como ves, con este snippet puede crear y guardar los datos de este nuevo campo. Modificando los valores que hacen referencia al GTIN (_gtin_field, _gtin, Global Trade Identification Number…) puedes añadir otro campo que necesites y guardarlo en la BBDD para futuros usos.