WooCommerce redueix existències en un punt definit del cicle de la comanda, no només perquè n’existeixi el registre. Una comanda pendent pot reservar unitats temporalment, mentre Processing o Completed acostuma a indicar progrés del pagament o preparació. Una passarel·la personalitzada pot canviar l’estat sense executar el flux normal.
No restis inventari manualment fins a saber si WooCommerce ja va registrar l’ajust. Repetir-lo pot crear el problema contrari.
Reconstrueix la cronologia
Obre la comanda i revisa les notes privades sobre pagament, canvis d’estat i reducció d’estoc. Anota producte, variació, quantitat, estat actual i mètode de pagament.
Compara l’hora amb els registres de la passarel·la i WooCommerce. Confirma si el pagament va quedar autoritzat, capturat, rebutjat o pendent. Utilitza una comanda afectada com a evidència i no en canviïs l’estat repetidament durant el diagnòstic.
Comprova l’article exacte
Verifica que la gestió d’inventari estigui habilitada globalment i inspecciona el producte o variació comprat.
Registra sense dades del client:
- ID de producte i variació
- quantitat demanada
- estoc anterior i posterior
- configuració manage_stock
- política de comandes pendents
En productes variables, l’estoc es pot gestionar a la variació, al producte pare o amb codi propi. Consulta l’ID desat a la línia, no només el nom visible.
Diferencia reserva i reducció
Segons el checkout i el temps de retenció, WooCommerce pot reservar estoc per a comandes no pagades. La reserva modifica la disponibilitat calculada sense canviar immediatament la quantitat desada.
Comprova si el producte apareix esgotat tot i mantenir el número. Revisa les comandes pendents i la caducitat de les reserves. No les eliminis indiscriminadament: el comprador pot continuar completant el pagament.
Revisa estat i passarel·la
Els mètodes fora de línia poden deixar comandes On hold, mentre els pagaments confirmats acostumen a cridar el procés de pagament completat. Una integració que només assigna Processing pot ometre la reducció.
$order = wc_get_order( $order_id );
if ( $order && ! wc_string_to_bool( $order->get_meta( '_order_stock_reduced' ) ) ) {
// Investigar per què no es va executar el flux compatible.
}
El marcador intern és context de diagnòstic, no un camp que s’hagi d’editar. Forçar-lo pot trencar una cancel·lació posterior.
Busca hooks i integracions
Revisa el codi mantingut pel lloc que crida funcions d’estoc durant pagaments o transicions. Un ERP, magatzem o marketplace pot ser la font autoritzada i actualitzar WooCommerce més tard.
Relaciona els logs externs amb la comanda. Una exportació fallida deixa una quantitat obsoleta encara que el processament local sigui correcte. Defineix un sol propietari de l’ajust: dos sistemes escrivint sense idempotència produeixen diferències.
Comprova errors i tasques
Un error PHP o MySQL pot aturar l’execució abans del canvi. Correlaciona l’hora amb els logs i les Accions programades fallides.
Si HPOS està actiu, confirma la compatibilitat de les extensions. Consultes antigues directes a postmeta poden llegir una representació incorrecta. Repara el codi o la tasca abans de repetir una operació controlada.
Comprova també que la base de dades no estigués en mode de només lectura, sense espai o bloquejada durant la confirmació. Una nota de pagament correcta no demostra que l’escriptura d’inventari acabés. Busca l’error exacte del mateix segon i verifica que totes les taules utilitzades siguin accessibles des del node que processa el webhook.
Reconcilia i prova
Compara l’estoc físic, WooCommerce, reserves i comandes del període. Determina quines vendes pagades havien de descomptar unitats. Aplica una correcció compatible i auditable una sola vegada; no alteris estats històrics per provocar efectes secundaris.
Fes després una compra de control. Valida reserva, pagament, una única reducció, cancel·lació i reemborsament. El manteniment recurrent ha d’avisar de comandes pagades sense nota de reducció i sincronitzacions d’inventari fallides.