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:

  1. wc_get_product — confirma que type es variable.
  2. wc_get_product_attributes y wc_get_attribute_terms — mira lo que ya existe.
  3. 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

  1. Lee de nuevo las variaciones.
  2. Abre la página del producto en la tienda.
  3. Selecciona la combinación nueva y confirma el precio y la disponibilidad que se muestran.
  4. Comprueba que el rango de precios mostrado del producto se ha actualizado.
  5. 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

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.