Cancelar no significa siempre que WooCommerce deba sumar unidades. Si nunca descontó stock, reponerlo inflaría el inventario. Si la mercancía salió, un estado de pago cancelado tampoco demuestra que haya vuelto al almacén.
La reparación debe seguir el movimiento físico y el historial de reducción, no basarse únicamente en la etiqueta del pedido.
Confirma qué ocurrió con la mercancía
Pregunta si el pedido fue pagado, preparado, enviado, devuelto o simplemente abandonado. Comprueba la situación en la pasarela y el sistema de fulfilment.
Registra ID, producto o variación, cantidad, cronología de estados y stock físico actual. No cambies el estado mientras recopilas evidencia. En un chargeback o una entrega fallida, la política comercial determina cuándo la unidad vuelve a ser vendible.
Lee las notas de stock
Las notas de WooCommerce suelen indicar cuándo se redujeron o restauraron existencias. Averigua si hubo reducción y si después se intentó reponer.
stock nunca reducido -> no sumar unidades
stock reducido y mercancía no enviada -> normalmente reponer
mercancía enviada o incierta -> reconciliar primero el almacén
Esta decisión evita que una corrección automática cree stock fantasma.
Comprueba producto y variación
El inventario puede estar gestionado en la variación exacta y no en el producto padre. Consulta el ID de la línea y el ajuste manage stock.
Si después de la compra se movió la gestión del padre a las variaciones, el código antiguo puede dirigirse a otro registro. Los backorders ocultan el efecto práctico, por lo que debes comparar el número, no solo la disponibilidad pública.
En packs, confirma si una unidad almacenada representa una pieza o un paquete vendible. Reponer la cantidad de la línea sin esa conversión puede multiplicar el error.
Distingue cancelación y reembolso
Cambiar el estado a Cancelled y crear un reembolso son operaciones diferentes. La pantalla de reembolso puede ofrecer reponer artículos, mientras un abono realizado solo en la pasarela no comunica qué mercancía regresó.
Documenta el flujo que debe usar el equipo. No devuelvas el dinero una segunda vez para provocar el ajuste. En reembolsos parciales, suma únicamente las unidades recibidas y aprobadas como vendibles.
Revisa estados, hooks y código propio
Estados personalizados, ERP y plugins de preparación pueden modificar el proceso normal. Busca en logs y código mantenido las funciones de restauración.
$order = wc_get_order( $order_id );
if ( $order ) {
// Revisar estado e historial antes de cualquier reposición compatible.
}
No llames a wc_increase_stock_levels() a ciegas. Un callback repetido podría reponer las mismas unidades dos veces.
Inspecciona tareas y sistemas externos
Una integración puede poner la cancelación en cola y actualizar WooCommerce cuando el almacén confirme. Revisa Acciones programadas y trabajos externos.
Si una tarea falló, decide qué sistema posee el inventario y reproduce una única operación verificada con sus controles. Guarda un ID de correlación para que un reintento no parezca una cancelación nueva. Evita que ambos sistemas escriban simultáneamente sin una regla definida.
Reconcilia el periodo afectado
Revisa cancelaciones, devoluciones, envíos y ajustes manuales del producto. Cuenta físicamente o usa el registro autorizado del almacén.
Aplica una corrección compatible por la diferencia demostrada y documenta el motivo. No edites cantidades históricas ni estados de pago para forzar efectos secundarios. Si se vendieron unidades inexistentes durante el desfase, resuelve esos pedidos antes de reabrir ventas.
Prueba cada recorrido
Crea un pedido controlado, confirma una reducción, cancélalo antes de preparar y verifica una sola reposición. Prueba por separado reembolso parcial y devolución tras envío.
El control recurrente debe señalar pedidos cancelados cuyo stock fue descontado pero nunca restaurado, excluyendo los que esperan una devolución física. Una alerta fiable necesita la cronología del negocio, no una regla basada solo en el estado.