tiendalab.
WooCommerceActualizado 19 jun 20269 min de lectura

Cómo importar productos a WooCommerce sin romper las variaciones

En corto

Para importar productos variables por CSV en WooCommerce necesitas una fila para el producto padre con 'Tipo=variable' y SKU propio, y una fila por cada variación con 'Tipo=variation', su SKU y un campo 'Parent' que apunte al SKU del padre. Los valores de atributo de cada variación deben ser un subconjunto exacto de los del padre, y el archivo debe estar en UTF-8.

El importador de CSV nativo de WooCommerce funciona bien hasta que el catálogo deja de ser una lista plana. Para productos simples —un SKU, un precio, un stock— subes el archivo, mapeas columnas y listo. El problema aparece con los productos variables: una polera que viene en tres tallas y dos colores, una zapatilla con seis numeraciones. Ahí el CSV deja de ser una fila por producto y pasa a ser una estructura jerárquica, y casi todos los descuadres de importación nacen de tratar esa jerarquía como si fuera una planilla cualquiera.

Cómo modela WooCommerce un producto variable

Un producto variable no es un registro: son varios. Hay un producto padre con Tipo=variable, que define los atributos (talla, color) y agrupa la ficha, las imágenes y la descripción. Y hay una variación por cada combinación que efectivamente vendes, cada una con Tipo=variation, su propio SKU, su propio precio y su propio stock. El padre no se vende: es el contenedor. Lo que entra al carro es siempre una variación.

En el CSV esto se traduce en una fila para el padre y una fila por cada variación debajo. La pieza que las une es el campo Parent de cada variación, que apunta al SKU del padre. Si esa referencia falta o está mal escrita, WooCommerce importa filas sueltas que no se relacionan entre sí, y terminas con un padre sin variaciones y un puñado de productos huérfanos.

Los atributos: el detalle que más se rompe

Cada atributo ocupa un par de columnas: Attribute 1 name (por ejemplo, Talla) y Attribute 1 value(s). En el padre, el valor es la lista completa de opciones separadas por coma: S, M, L. Además, el padre necesita marcar ese atributo como visible y, sobre todo, como usado para variaciones; si no, Woo lo trata como un atributo informativo y no genera nada.

En cada variación, en cambio, ese mismo Attribute 1 value(s) lleva un solo valor: el que le corresponde a esa fila (M, no S, M, L). La regla que evita la mayoría de los errores es simple: los valores de las variaciones tienen que ser un subconjunto exacto de los del padre. Si el padre dice S, M, L y una variación trae M con un espacio de más, o Mediano en vez de M, esa variación no calza y se importa sin asociar.

Columnas clave del CSV

Estas son las columnas que sostienen la estructura. El resto —descripción, peso, dimensiones, categorías— importa, pero no es lo que rompe las variaciones.

ColumnaPara qué sirveEjemplo
Type (Tipo)Define si la fila es el contenedor o una combinación vendible.variable en el padre, variation en cada hija
SKUIdentificador único de cada fila. El padre también necesita el suyo.POL-AZUL (padre), POL-AZUL-M (variación)
ParentConecta la variación con su padre. Vacío en el padre.POL-AZUL o id:1234
Attribute 1 nameEl nombre del atributo. Igual en padre y variaciones.Talla
Attribute 1 value(s)Lista completa en el padre; un único valor en cada variación.S, M, L (padre), M (variación)

Por qué se rompe una importación

Cuando una importación de variables falla, casi siempre es una de estas causas, y todas son de forma del archivo, no del catálogo:

  • El padre no tiene SKU. Si referencias el padre por SKU desde las variaciones pero el padre lo dejó vacío, no hay a qué apuntar. Dale SKU al padre o usa id: contra su ID interno.
  • El Parent está mal referenciado. Un SKU con un guion distinto, un espacio invisible o mayúsculas que no coinciden basta para que la variación quede huérfana.
  • Atributos que no calzan. El padre declara Color y la variación trae Colores, o el valor de la hija no está en la lista del padre. La variación se crea pero sin combinación asignada.
  • El archivo no está en UTF-8. Exportar desde Excel en Latin-1 convierte las tildes y la ñ en signos raros, y rompe nombres, categorías y valores de atributo. Guarda como CSV UTF-8.
  • Separadores y comas. Si tu sistema usa ; como separador o un valor contiene una coma sin comillas, las columnas se corren y el mapeo deja de tener sentido.
  • Booleanos como texto. Las columnas como In stock?, visible o published esperan 1 o 0, no /no ni TRUE/FALSE en español.
  • Jerarquía de categorías. Las subcategorías se expresan con >: Ropa > Poleras. Un formato distinto crea categorías planas o duplicadas.

Lista de chequeo antes de importar

Antes de subir el archivo a producción, conviene revisar en una copia o en un ambiente de prueba:

  • El archivo está guardado en UTF-8 y el separador es el que espera tu importador.
  • Cada padre tiene Tipo=variable y un SKU propio.
  • Cada variación tiene Tipo=variation, su SKU y su Parent correcto.
  • Los valores de atributo de las variaciones existen tal cual en la lista del padre.
  • El padre marca los atributos como usados para variaciones.
  • Los campos booleanos usan 1/0.
  • Las categorías con jerarquía usan > y coinciden con las ya creadas.
  • Los SKU no se repiten entre filas ni chocan con productos ya existentes.
  • Hiciste una importación de prueba con cinco o diez productos antes del catálogo completo.

Cuándo el CSV deja de ser la herramienta correcta

Importar por CSV es razonable para una carga inicial o para un catálogo que cambia poco. Pero si el catálogo es grande, si los precios y el stock se mueven seguido, o si las variaciones se crean y se dan de baja con frecuencia, subir archivos a mano deja de escalar: cada carga es una oportunidad nueva de que un SKU no calce o una tilde se rompa, y nadie recuerda cuál fue la última versión buena del archivo.

En ese escenario, la decisión de fondo no es cómo armar mejor el CSV, sino quién es dueño del catálogo. Cuando el inventario y las variaciones ya viven en un ERP, lo sólido es que ese sistema sea la fuente de verdad y que WooCommerce se sincronice contra él, en vez de mantener dos copias que hay que cuadrar a mano. Esa es la misma lógica que aplica al stock por sucursal, y es el tipo de puente que armamos en nuestras integraciones con el ERP. Si tu catálogo de variables ya te está costando más planillas que ventas, conviene revisar cómo trabajamos antes de subir el próximo archivo: el CSV es una buena puerta de entrada, pero rara vez es el lugar donde el catálogo debería vivir.

Preguntas frecuentes

¿Cómo importo un producto con tallas y colores en WooCommerce por CSV?
Crea una fila padre con 'Tipo=variable' que liste todos los atributos separados por coma y los marque como usados para variaciones. Luego agrega una fila por combinación vendible con 'Tipo=variation', su SKU, su 'Parent' y un solo valor de atributo. El padre agrupa la ficha; lo que entra al carro es la variación.
¿Por qué mis variaciones no se asocian al producto padre al importar?
Casi siempre es la forma del archivo: el padre sin SKU, un 'Parent' mal escrito con un espacio o mayúsculas que no coinciden, o un valor de atributo que no calza con la lista del padre. También rompen el archivo guardado en Latin-1 en vez de UTF-8 y los separadores mal usados.
¿Cuándo deja de servir el CSV para mantener el catálogo de WooCommerce?
Cuando el catálogo es grande, los precios y el stock se mueven seguido, o las variaciones se crean y dan de baja con frecuencia. Ahí cada carga manual es otra oportunidad de descuadre. Lo sólido es que el ERP sea la fuente de verdad y WooCommerce se sincronice contra él.

Software que funciona conectado.

Partamos por un diagnóstico de tu WooCommerce. Te decimos qué se puede hacer y qué no, con un plan priorizado.