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

  1. Recorre la lista results y da cuenta de cada entrada.
  2. Enumera de nuevo las variaciones y compáralas con tu tabla previa al lote.
  3. Abre la página del producto y selecciona dos o tres combinaciones afectadas.
  4. Comprueba el rango de precios del producto en las páginas de listado.
  5. 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