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.
| Columna | Para qué sirve | Ejemplo |
|---|---|---|
Type (Tipo) | Define si la fila es el contenedor o una combinación vendible. | variable en el padre, variation en cada hija |
SKU | Identificador único de cada fila. El padre también necesita el suyo. | POL-AZUL (padre), POL-AZUL-M (variación) |
Parent | Conecta la variación con su padre. Vacío en el padre. | POL-AZUL o id:1234 |
Attribute 1 name | El 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
Parentestá 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
Colory la variación traeColores, 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?,visibleopublishedesperan1o0, nosí/noniTRUE/FALSEen 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=variabley un SKU propio. - Cada variación tiene
Tipo=variation, su SKU y suParentcorrecto. - 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.
Sigue leyendo
- Chile
Facturación electrónica en WooCommerce Chile: por qué el DTE va en el ERP, no en la tienda
Vender online en Chile obliga a emitir DTE, pero WooCommerce no factura —ni debería—. Acá está cómo se conecta la tienda con quien sí emite, sin asumir riesgo tributario.
- Chile
IVA en WooCommerce Chile: precio con IVA incluido, neto y el descuadre de pesos con el ERP
El IVA es uno solo —19%— y aun así descuadra tiendas: la web muestra un precio y la factura otro, por pesos. Acá está dónde se separa el cálculo y cómo cerrarlo.
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.