wc_create_variation: crea una variación
Añade una variación a un producto variable.
Argumentos
| Argumento | Obligatorio | Significado |
|---|---|---|
product_id |
Sí | El producto padre |
attributes |
No | La combinación de atributos que representa esta variación |
sku |
No | Unidad de mantenimiento de existencias (SKU) |
regular_price |
No | Precio normal |
sale_price |
No | Precio de oferta |
description |
No | Descripción de la variación |
stock_quantity |
No | Nivel de stock |
dry_run |
No | Informar sin crear |
Permisos
Allow WooCommerce catalog writes abierto, además de manage_woocommerce o edit_products.
El padre debe estar listo primero
Una variación solo funciona si su producto padre es un producto variable cuyos atributos están marcados como usados para variaciones.
Antes de crear ninguna:
wc_get_product— confirma quetypeesvariable.wc_get_product_attributesywc_get_attribute_terms— mira lo que ya existe.wc_set_product_attributes— adjúntalos, marcados para variaciones.
Saltarte esto genera variaciones que existen en la base de datos y que nunca aparecen en el selector del producto, porque su combinación de atributos no se corresponde con nada de lo que el producto ofrece.
Nada te avisa. La creación se completa correctamente.
attributes define qué combinación es esta
El mapa identifica la variación — una talla y un color, por ejemplo. Debe usar los nombres de atributo y los slugs de término que el producto padre declara realmente.
Un attributes vacío o que no coincida produce una variación que los clientes no pueden seleccionar. Es el fallo más habitual aquí, y la razón por la que leer primero los atributos del padre no es opcional.
Ponle un precio
Una variación sin precio no se puede comprar. WooCommerce muestra el producto, pero el cliente no puede completar la selección.
Define regular_price en cada variación que crees. Define sale_price solo si debe lanzarse con descuento.
El stock depende del padre
stock_quantity establece un número, pero que WooCommerce lo use depende de que la gestión de stock esté activada en el producto padre. Fijar una cantidad en un producto que no gestiona stock almacena un valor sobre el que nada actúa.
Decide el modelo de stock primero a nivel de producto.
Crea una, comprueba y luego el resto
Las variaciones se crean una a una, así que un producto con doce combinaciones son doce llamadas — y doce ocasiones de repetir el mismo error.
Crea la primera variación y muéstrame después la página del producto para que pueda seleccionarla. Detente ahí.
Si la primera variación se puede seleccionar en la tienda, el mapeo de atributos es correcto y el resto funcionará. Si no, tienes una que corregir en lugar de doce.
La prueba en seco
Devuelve la carga útil que crearía, sin crearla. Resulta útil para confirmar el mapa de atributos antes de la primera.
Los SKU deben ser únicos
En todo el catálogo, no solo dentro del producto. Un lote de variaciones que comparta un patrón de SKU fallará en los duplicados.
Después de crear
- Lee de nuevo las variaciones.
- Abre la página del producto en la tienda.
- Selecciona la combinación nueva y confirma el precio y la disponibilidad que se muestran.
- Comprueba que el rango de precios mostrado del producto se ha actualizado.
- Purga la caché.
El paso 3 es el que demuestra que funcionó. Que los datos almacenados sean correctos no garantiza que el selector se comporte como debe.
Problemas habituales
| Síntoma | Causa |
|---|---|
| Se rechaza la escritura | Compuerta de escritura del catálogo cerrada |
pom_ai_mcp_wc_forbidden |
Falta la capacidad de tienda |
| La variación no se puede seleccionar | Sus atributos no coinciden con los del padre |
| Los clientes no pueden comprarla | No se fijó precio |
| Se ignora el stock | La gestión de stock está desactivada en el padre |
| Falló la creación | SKU duplicado |
| El rango de precios no cambió | Caché sin purgar |
Relacionado
wc_set_product_attributes— haz esto primerowc_update_variation- Manage product variations
Permisos de objeto
El acceso al catálogo por sí solo no autoriza todos los objetos. Las actualizaciones y las lecturas privadas comprueban el objeto seleccionado; las operaciones de variación también comprueban su producto padre. La eliminación requiere capacidades de borrado. Crear un cupón requiere capacidades de creación y publicación de cupones; crear un atributo global requiere manage_product_terms. Toda escritura usa el flujo de trabajo de aprobación.