wc_update_coupon: actualizar un cupón

Cambia un cupón existente. Solo se modifican los campos que envíes.

Argumentos

Argumento Obligatorio Significado
id Sí El cupón
code No El código que escriben los clientes
discount_type No percent, fixed_cart o fixed_product
amount No El valor del descuento
description No Nota interna
date_expires No Cuándo deja de funcionar
usage_limit No Total de canjes permitidos
individual_use No Impedir combinar con otros cupones
product_ids No Restringir a productos concretos
dry_run No Informar sin escribir

Permisos

Allow WooCommerce catalog writes abierto, además de manage_woocommerce o edit_shop_coupons.

El after de la simulación no es el resultado

Esta es la trampa específica de esta herramienta. La simulación devuelve:

  • before — el cupón tal como está ahora, completamente formateado y preciso.
  • after — los argumentos que enviaste, sin procesar.

after no es el cupón que resultaría. No combina tus cambios en el registro existente, y un campo que no enviaste simplemente no aparece allí — lo cual parece, a simple vista, como si se fuera a borrar.

Lee before con atención; es real y es tu registro. Trata after como un eco de tu solicitud y calcula tú mismo el cupón resultante:

Simula el cambio, muéstrame el before y dime cómo quedará cada campo después.

El importe y el tipo deben razonarse juntos

Cambiar amount de 10 a 25 en un cupón percent es un gran regalo. Cambiar discount_type de fixed_cart a percent dejando amount en 20 convierte 20 € de descuento en un 20 % de descuento — en un pedido de 500 €, eso son 100 €.

El before te dice el tipo actual. Compruébalo antes de cambiar el importe, y no cambies nunca ambos en una sola llamada sin indicar primero el comportamiento resultante.

Cambiar code rompe el código en circulación

El cupón conserva su ID y su historial, pero la cadena que escriben los clientes cambia. Cualquiera que tenga el código antiguo verá «el cupón no existe» al pagar.

Si un código se ha hecho público, no lo renombres. Crea un cupón nuevo y haz caducar el antiguo.

Caducar es la forma segura de retirar un cupón

Establecer date_expires en una fecha pasada o inminente hace que el cupón deje de funcionar sin borrar nada. El registro sigue siendo legible, el código sigue reservado y puede reactivarse cambiando la fecha de nuevo.

Prefiere esto a wc_delete_coupon para cualquier cosa que se haya usado.

Para eliminar una caducidad — haciendo el cupón permanente — tendrías que borrar el campo, lo cual rara vez es lo que alguien quiere. Sé explícito si es tu intención.

Los pedidos pasados no se ven afectados

Editar un cupón no cambia retroactivamente los pedidos que ya lo usaron. Lo que cambia es lo que hace el código a partir de ahora.

Eso es tranquilizador para la contabilidad y poco útil para el control de daños: si un código fue demasiado generoso durante una hora, los pedidos realizados en esa hora conservan su descuento.

usage_limit por debajo del uso actual

Bajar el límite por debajo del número de canjes ya realizados hace que el cupón deje de funcionar inmediatamente. Es una forma legítima de matar un código rápido — más rápido que editar fechas, ya que no requiere razonar sobre zonas horarias.

MCP no puede mostrarte el recuento de uso actual, así que no puedes calcular el margen. Ponlo en 1 si la intención es «detén esto ya».

Después de escribir

  1. Lee de nuevo el cupón con wc_get_coupon — no solo la respuesta de la herramienta.
  2. Prueba el código en un carrito si el importe o el tipo cambiaron.
  3. Confirma que la caducidad se comporta como se pretende según la zona horaria del sitio.

Problemas comunes

Síntoma Causa
La escritura se rechaza Puerta de escritura del catálogo cerrada
pom_ai_mcp_wc_coupon_not_found ID incorrecto, o se pasó el código en su lugar
pom_ai_mcp_wc_forbidden Falta manage_woocommerce o edit_shop_coupons
El after parece que se borraron campos Hace eco de tus argumentos; los campos no enviados no cambian
El descuento está muy desviado discount_type y amount no coinciden
Los clientes dicen que el código no es válido code fue renombrado, o se alcanzó el límite
El cupón sigue funcionando tras caducar Zona horaria, o un pago en caché

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. Cada escritura usa el flujo de trabajo de aprobación.