wc_batch_update_variations: cambia variaciones en lote
Aplica actualizaciones a varias variaciones en una sola llamada. Es un bucle alrededor de wc_update_variation, no una transacción.
Argumentos
| Argumento | Obligatorio | Significado |
|---|---|---|
variations |
Sí | Una lista de cargas de actualización, cada una con su propio id |
dry_run |
No | Previsualiza cada entrada en lugar de escribir |
Cada entrada acepta los mismos campos que una actualización de variación individual: sku, regular_price, sale_price, description, stock_quantity, attributes.
Permisos y comprobaciones previas
Se requieren la puerta de escritura de WooCommerce, los ámbitos de escritura de OAuth y los permisos de edición de cada variación y del producto principal. Proporciona de 1 a 50 filas con IDs únicos. Las filas mal formadas y los controles de transporte a nivel de fila se rechazan en ambos transportes; coloca dry_run solo en el lote. Todas las filas se validan antes de solicitar la aprobación.
Inspecciona la finalización
Una respuesta correcta contiene complete: true y cada resultado guardado. Si la ejecución falla después de que empiecen los cambios, la operación se detiene y devuelve complete: false, los results completados, failed_id y error. Los cambios anteriores siguen guardados. Inspecciona los productos afectados antes de solicitar otra operación; no hay reversión automática.
Previsualiza todo el lote primero
Con dry_run a nivel de lote obtienes un before y un after por cada entrada:
Ejecuta el lote en modo de simulación y muéstrame una tabla de cada variación, su precio actual y su precio nuevo.
Esa tabla es el paso de revisión. Expone las entradas que no cambiarían nada, las que ya están en oferta y cualquier ID que no se resuelva.
Lee el estado actual antes de crear el lote
No hay historial de revisiones. La lista de wc_get_product_variations, leída antes del lote, es tu única vía de restauración.
Enumera cada variación del producto 219 con sus precios y su stock, y luego crea el lote.
Conserva esa lista. Si el lote sale mal, reconstruyes a partir de ella — como otro lote.
Las reglas de porcentaje requieren una decisión sobre las ofertas
"Sube todas las variaciones un 10%" es ambiguo cuando algunas están en oferta. Subir el regular_price en una variación con descuento no cambia nada de lo que ven los clientes; subir el sale_price agrava la confusión del descuento.
Decide antes de crear el lote:
Sube regular_price un 10% en las variaciones que no están en oferta y enumera las que omitas.
Dimensiona el lote según lo que puedas comprobar
El lote es cómodo, y ese es el riesgo: una sola llamada puede cambiar cada combinación de un producto, públicamente, sin deshacer.
Empieza con dos o tres entradas, verifica la tienda y luego ejecuta el resto. El máximo es de 50 variaciones por lote.
Después de escribir
- Recorre la lista
resultsy da cuenta de cada entrada. - Enumera de nuevo las variaciones y compáralas con tu tabla previa al lote.
- Abre la página del producto y selecciona dos o tres combinaciones afectadas.
- Comprueba el rango de precios del producto en las páginas de listado.
- Purga la caché y, después, el CDN.
Problemas frecuentes
| Síntoma | Causa |
|---|---|
| La escritura se rechaza | Puerta de escritura del catálogo cerrada |
complete: false |
La ejecución se detuvo; los cambios anteriores siguen guardados |
| Menos resultados que variaciones enviadas | Inspecciona complete y failed_id; no repitas todo el lote |
dry_run a nivel de fila rechazado |
Configúralo solo en el lote |
pom_ai_mcp_wc_variation_not_found en una entrada |
Un ID obsoleto o incorrecto en esa entrada |
| Los precios para el cliente no cambian | Esas variaciones están en oferta |
| Una combinación desapareció del selector | Una entrada cambió attributes |
Relacionado
wc_update_variation— el formulario de un solo elementowc_get_product_variations— lee antes, compara después- Gestiona las variaciones de producto