wc_update_variation: actualizar una variación
Actualiza una variación de un producto variable.
Argumentos
| Argumento | Obligatorio | Significado |
|---|---|---|
id |
Sí | La variación |
sku |
No | Referencia de stock (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 |
attributes |
No | La combinación de atributos |
dry_run |
No | Informar sin escribir |
Solo se modifican los campos que envíes.
Permisos
Allow WooCommerce catalog writes abierta, más manage_woocommerce o edit_products.
Usa la simulación y lee el before
Devuelve un before y un after auténticos:
Usa una simulación para fijar el precio normal en la variación 2204 y muéstrame el antes y el después.
El before te indica si actualmente hay un precio de oferta activo en esta variación — lo que determina si tu cambio afecta a lo que pagan los clientes. Las variaciones suelen estar en oferta de forma individual, por lo que esto varía dentro de un mismo producto.
Los campos de precio se comportan igual que en los productos
regular_price es el precio normal, sale_price es el descuento, y price en la respuesta es el resultado calculado por WooCommerce y no se puede escribir.
Para terminar una oferta en una variación, pon sale_price en un valor vacío. Omitirlo deja el descuento activo.
Consulta wc_update_product, donde se describen en detalle esos mismos tres campos.
Cambiar attributes reidentifica la variación
Este es el campo exclusivo de las variaciones y el más peligroso de todos los que hay aquí.
attributes define qué combinación representa la variación. Cambiarlo no mueve un precio de una combinación a otra — redefine lo que es esta variación.
Dos modos de fallo:
- Una combinación que ya no coincide con los atributos del producto padre hace que la variación deje de poder seleccionarse. Sigue existiendo, pero ningún cliente puede acceder a ella.
- Una combinación que duplica otra variación deja dos variaciones compitiendo por la misma selección, y WooCommerce elige una.
Lee los atributos del producto padre y las variaciones hermanas antes de tocar este campo. La mayor parte del trabajo con precios y stock no debería tocarlo en absoluto:
Actualiza solo el precio normal. No cambies los atributos.
Stock
stock_quantity establece un número; que WooCommerce lo use depende de que la gestión de stock esté activada en el producto padre, que no es un campo de variación.
Comprueba el producto padre con wc_get_product antes de dar por hecho que una escritura de stock tendrá efecto.
Sin historial de revisiones
Las variaciones no guardan historial de precios ni de stock. Los valores que leas antes de escribir son el único registro.
Muéstrame el precio y el stock actuales de la variación 2204 y luego aplica el cambio.
Vuelve a leerla y comprueba la tienda
La respuesta refleja lo que se guardó, pero otros plugins enlazan con el guardado de variaciones — precios dinámicos, feeds, sincronización de inventario.
Después de escribir:
- Vuelve a leer la variación.
- Abre la página del producto.
- Selecciona esa combinación concreta y confirma el precio y la disponibilidad que se muestran.
- Comprueba el rango de precios del producto en las páginas de listado.
- Purga la caché y, después, la CDN.
El paso 3 es la prueba. Que los datos guardados sean correctos no garantiza que el selector se comporte bien.
Antes de un lote
Actualiza una variación con una simulación, aplícala, comprueba la tienda y solo entonces usa wc_batch_update_variations.
Problemas comunes
| Síntoma | Causa |
|---|---|
| Se rechaza la escritura | Puerta de escritura del catálogo cerrada |
pom_ai_mcp_wc_variation_not_found |
ID incorrecto, o el ID es un producto |
pom_ai_mcp_wc_forbidden |
Falta capacidad de tienda |
| El precio del cliente no cambió | Sigue activo un precio de oferta |
| La variación desapareció del selector | Su attributes ya no coincide con el producto padre |
| El stock se ignora | La gestión de stock está desactivada en el producto padre |
| El rango de precios está obsoleto | Caché no purgada |
Relacionado
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 con variaciones 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 aprobación.