Tienes suerte. Tu negocio vende mucho. En Black Friday o rebajas, los pedidos entran a ritmo de ametralladora. Pero esta velocidad tiene un precio oculto si tu integración no está bien diseñada: los duplicados fiscales.

Lo peor de un duplicado fiscal no es que el ERP tenga basura. Es que estás declarando el doble de ingresos y pagando el doble de IVA por una venta que solo has hecho una vez. Y hacienda no te devolverá el dinero si no lo rectificas a tiempo.

El problema de la 'doble verdad'

Muchos plugins de facturación funcionan así: cuando el cliente paga, WooCommerce genera una factura (PDF) y la envía al cliente. Al mismo tiempo (o después), envía el pedido al ERP, que... ¡sorpresa! Genera su propia factura.

Ahora tienes la factura #1001 en WooCommerce y la factura F-2024-500 en el ERP. Dos series diferentes. Dos documentos legales. Una sola venta. ¿Cuál de los dos declaras? Si tu gestor coge los datos del ERP y tú has enviado al cliente la de WooCommerce, tenéis un problema de coherencia documental.

El ataque de los clones (Race Conditions)

A veces el problema es puramente técnico. Imagina este escenario:

  • 1. WooCommerce envía el pedido al ERP.
  • 2. El ERP tarda en responder (está saturado por Black Friday).
  • 3. El conector piensa que ha fallado y lo reintenta (Retry).
  • 4. El ERP finalmente procesa la primera petición. Y después la segunda.
  • 5. Resultado: Dos facturas idénticas, con numeración diferente, en tu libro de ventas.

Cómo detectarlo antes del inspector

Ponte la gorra de auditor y haz estas comprobaciones rápidas:

  • Comprueba IDs externos: Tu ERP debe tener un campo 'ID Pedido Web'. Si ves dos registros diferentes con el mismo ID Web, tienes duplicados.
  • Revisa horas de creación: Si ves dos facturas por el mismo importe, mismo cliente, creadas con milisegundos de diferencia, es un error de 'race condition'.
  • Audita las series: Si WooCommerce hace facturas, asegúrate que el ERP NO las hace, o que simplemente 'importa' el PDF sin generar nuevo número.

La solución: Idempotencia

Palabra técnica, solución mágica. Un sistema idempotente garantiza que, aunque envíes el mismo pedido 50 veces, el ERP solo lo creará una vez. Si recibe la segunda, detecta que ya existe y no hace nada (o actualiza el existente).

Sin idempotencia, cualquier error de red se convierte en un error fiscal.

👉 Entiende cómo la arquitectura de eventos soluciona esto