Importando productos a Woocommerce con campos extra

woocommerceLa importación de categorías y productos a Woocommerce es bastante sencilla cuando nos plegamos a sus especificaciones de importación, o sea cuando los productos solo tienen los campos comunes; nombre, descripción, precio, categoría, imagen, etc... Pero qué sucede cuando nuestros productos tienen campos extra, como por ejemplo unidades por caja, EAN, volumen, etc... y queremos que esos campos, además de poder importarlos, salgan en la ficha de producto de Woocommerce.

Hay varias soluciones, como por ejemplo utilizar el plugin Advanced Custom Fields y una vez instalado, instalarle un complemento de pago que permite importar campos extra a Woocommerce. 
O bien la solución que vamos a tratar en este post, que es utilizar el Product CSV Import Suite, un plugin de pago del propio Woocommerce. Sí, todas las soluciones que he visto para este fin eran de pago.
Lo bueno de este plugin, es que permite importar categorías y productos, pero además variaciones. Vamos a importar un CSV de categorías / productos con campos extra.

En primer lugar, a la hora de crear el CSV a partir de un Excel, debemos respetar las típicas especificaciones que nos marca Wordpress / Woocommerce para importar:
  • Las categorías deben estar jerarquizadas con un ">". O sea, que si ponemos: "Sombreros > Verano", creará la categoría "Sombreros", si no existe, y creará dentro de esta una subcategoría llamada "Verano", si no existe, y dentro de esta ubicará el producto.
  • Las imagenes deben estar metidas entre comillas, separadas por comas, y con la ruta completa. Por ejemplo: "http://ruta/imagen1.jpg,http://ruta/imagen2.jpg,http://ruta/imagen3.jpg"
  • La descripción permite html, pero no retornos de carro, ya que dificultan su importación.
  • Los precios deben estar en el formato del pais configurado en Woocommerce, o sea: Formato americano ->  8.12  Formato europeo ->  8,12
  • Los precios no deben tener el caracter de moneda, debe ser números.
  • Los nombres de los campos, los ponemos en la primera fila del CSV.
Una vez tenemos listo nuestro CSV, vamos a importarlo. Lo primero que nos encontramos es una pantalla donde nos pide subir el CSV, y nos pregunta el caracter que separa los campos en el CSV, es muy importante poner el correcto, que suele ser la coma o el punto y coma.
A continuación llegamos a la pantalla "Map fields". Aqui "casaremos" cada campo de nuestro CSV con un campo del Woocommerce. Los campos están divididos en secciones. Por ejemplo:
  • Referencia -> Product data: SKU
  • Precio -> Product data: Price: Regular price
  • Fotos -> Images / Gallery
  • Nombre del producto -> Post data: Post title
  • Descripción -> Post data: Post content
  • Categorías -> Taxonomies: Category
  • etc...
Y ahora los campos extra, que salen en nuestro CSV, pero no casan con ninguno de Wordpress / Woocommerce, los casamos con "Custom field with column name". Y el nombre del campo, lo tomará de la primera fila del CSV.
Tal vez haya algún campo del CSV que no queremos importar, entonces lo casamos con "Do not import".

Si no estamos seguros de haberlo hecho bien, lo suyo es utilizar la primera vez un CSV con un sólo producto, y si va bien, ya ponemos la lista completa.

Una vez importado, si vamos a un producto de los que hemos importado, veremos que los campos extra están en la sección "Campos personalizados". Si no vemos esta sección, hay que activarla arriba en "Opciones de pantalla". Muy bien, ahora como hago para que todos esos campos personalizados salgan en la ficha de producto de Woocommerce. Hay que invocarlos con una función en el functions.php de nuestro tema.

Ahora solo nos queda escoger el hook del lugar donde queremos que salgan. Vamos a suponer que queremos que nuestros campos salgan en una pestaña debajo de la descripción. Entonces usaremos el "woocommerce_product_tabs", y añadiremos una pestaña llamada "Información adicional":
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {
$tabs['test_tab'] = array(
'title' => __( 'Información adicional', 'woocommerce' ),
'priority' => 50,
'callback' => 'woo_new_product_tab_content'
);
return $tabs;
}
function woo_new_product_tab_content() {
$custom = get_post_custom();
echo "<ul>";
foreach($custom as $key => $value) {
echo "<li>".$key.': '.$value[0].'</li>';
}
echo "</ul>";
}
También podemos querer que salgan debajo del precio, entonces usaremos el "woocommerce_product_meta_end":
add_action('woocommerce_product_meta_end', 'woo_new_product_tab_content', 15);
2 comments
  • Pepe
    07-04-2023 13:35
    Gracias por la info
  • Antoni
    25-05-2023 15:55
    Hola, Muy util, pero salen todos los campos opcionales de woocomerce en mi tienda, hay una opción de limitarlos a algunos solos?
Leave a comment
I have read and accept the Privacy Policy

The comments sent by each user will always be visible in the corresponding post, and will not be used for any other purpose. The user has the right to access, rectify and suppress said comments, as reflected in our Privacy Policy