Avaluació inicial sense contrasenyes Pressupost abans d’intervenir Un especialista responsable de principi a fi

Errors & Diagnosis

L’estoc de WooCommerce es descompta dues vegades: hooks duplicats i reintents segurs

Doble reducció estoc generalment significa la mateixa transició d’ordre o sensecronització personalitzada va córrer més d’una vegada sense un protector d’idempotència.

Què cal comprovar primer: WooCommerce registra si l’estoc ja s’ha reduït, però el codi personalitzat, les importacions, els webhooks duplicats o els canvis manuals d’estat poden saltar-se o reiniciar aquesta protecció.

Què significa realment que l’estoc es descompti dues vegades

Una doble reducció no sempre és un problema de WooCommerce core. El que importa és reconstruir qui va escriure cada canvi d’inventari i amb quin esdeveniment estava relacionat.

Reconstrueix cada ajust d’inventari

  • Captura els ID de les comandes afectades, les línies de producte i l’historial d’estoc.
  • Revisa _order_stock_reduced i totes les transicions d’estat de la comanda.
  • Comprova reintents de webhooks, importacions i hooks personalitzats d’inventari.
  • Compara els moviments de WooCommerce amb els registres de l’ERP o del magatzem.

D’on acostuma a sortir la segona reducció

  • Callback duplicat: el mateix esdeveniment de pagament executa més d’una vegada el codi que redueix l’estoc.
  • Hook personalitzat: un plugin redueix l’estoc a més de la lògica pròpia de WooCommerce.
  • Canvis d’estat repetits: la comanda entra i surt diverses vegades d’estats que poden afectar l’inventari.
  • Bucle de sincronització extern: WooCommerce i l’ERP repliquen cadascun l’ajust fet per l’altre.

Fes idempotents les escriptures d’inventari

  1. Identifica una única ruta autoritzada per modificar l’inventari.
  2. Afegeix idempotència per esdeveniment i comanda als processos personalitzats o externs.
  3. Corregeix quantitats històriques només després de conciliar cada transacció afectada.
  4. Prova pagament, cancel·lació, reemborsament i repetició del webhook.

Esdeveniment duplicat o segon gestor d’estoc?

Un callback duplicat deixa rastre d’esdeveniments repetits; un hook d’un plugin pot tornar a reduir l’estoc encara que el pagament només aparegui una vegada. Compara notes de comanda, _order_stock_reduced, identificadors de webhook i el registre de l’ERP o del magatzem abans de tocar res. La reparació passa per fer idempotent l’entrada de l’esdeveniment o eliminar el segon procés que escriu inventari.

Si el segon moviment d’inventari comença amb esdeveniments comercials duplicats, compara el rastre amb comandes duplicades a WooCommerce i amb pagaments duplicats per reintents. Si cap dels dos casos es reprodueix, centra’t en hooks d’estoc o en la sincronització amb l’ERP, no en el checkout.

Per què reiniciar flags d’estoc pot empitjorar-ho

No reiniciïs _order_stock_reduced a cegues. Aquest indicador evita reduccions repetides de WooCommerce i modificar-lo pot provocar un altre ajust justament mentre intentes corregir l’anterior.

Reprodueix tot el cicle de vida de la comanda

  • Cada comanda afecta l’estoc exactament una vegada segons la política definida.
  • La repetició d’un webhook o un canvi d’estat no duplica moviments d’inventari.
  • El registre d’estoc de WooCommerce quadra amb l’ERP o el sistema de magatzem.

Tanca la incidència només quan un pagament normal, la repetició d’un webhook, un canvi d’estat i un reemborsament deixin cadascun un únic ajust d’inventari auditable i WooCommerce continuï conciliant amb l’ERP o el registre de magatzem.

CRITERI D’INCIDENT WP REPAIR

Com acotar l’error sense endevinar

Les notes de comanda, metadades i el sistema d'inventament registres mostren cada esdeveniment de reducció i cada actor.

WP RepairModel de diagnòstic
1Navegador2Sessió3Passarel·la4Comanda
Segueix la cadena fins a trobar el primer punt que deixa de comportar-se com hauria de fer-ho.
01

Captura els ID d’ordre afectats, els elements de línia i l’historial d’estoc.

02

Inspecciona les transicions d'estat _order_stock_reduced i ordeni.

03

Revisar webhook reintents, importacions i ganxos d’inventari personalitzats.

04

Compara WooCommerce amb ERP o ajust de magatzem registres.

Què ha de quedar verificat

  • Cada ordre afecta a estoc d'acord amb la política exactament una vegada.
  • Webhook replay i edicions d'estat no dupliquen canvis en l’inventari.
  • Els llibres contaules externs i WooCommerce estoc es reconcilien.

SOBRE ESTE SÍNTOMA

Preguntes freqüents d'aquesta guia.

És segur restablir l'indicador _order_stock_reduced per solucionar això?+

No. Aquesta bandera de metadades existeix específicament per aturar WooCommerce core de reduir stock dues vegades per al mateix ordre, per la qual cosa la neteja pot desencadenar una altra reducció en comptes de corregir la que ja ha passat.

Pot un reintent webhook causar una doble reducció stock fins i tot si el codi és correcte?+

Sí. Si un pagament gateway reenvia el mateix esdeveniment d’acabament i el controlador no és idempotente, el mateix webhook pot activar la lògica de reducció de stock més d’una vegada per una comanda.

Mereix un ordre cap enrere i cap endavant entre estats afecta a stock?+

Podeu. El ciclisme d’estat a través d’estats de reducció (per exemple, el processament en espera i enrere) pot fer que stock es redueixi de nou si el codi no comprova si ja es va reduir per a aquest ordre.

Com puc saber si WooCommerce o un sistema extern és la font de la duplicació?+

Compareu les notes de comanda i l’historial _order_ stock_ reduced en WooCommerce amb el registre d’ajust ERP o magatzem per al mateix ordre i marca de temps. Qualsevol que sigui el sistema mostra un ajust sense un disparador corresponent a l’altra banda és el que aplica un canvi addicional.

ABANS D’ENVIAR LA SOL·LICITUD

Preguntes freqüents.

Demaneu contrasenyes al formulari?+

No. El formulari públic no demana mai accessos. Les dades segures es demanen només després d’aprovar l’abast i el pressupost.

Qui revisa la incidència?+

La sol·licitud arriba a Jordi Ensenyat, fundador de Code Barcelona i especialista en WordPress amb més de 15 anys d’experiència.

Es canvia res abans del pressupost?+

No. Primer es revisen els símptomes visibles i es defineix l’abast. La intervenció comença després de l’aprovació i amb una via de recuperació preparada.

Treballeu amb webs en anglès i fora d’Espanya?+

Sí. WP Repair atén incidències de WordPress i WooCommerce en català, castellà i anglès mitjançant un servei remot.

Avaluar la meva incidència↗