Dos pedidos parecidos no implican la misma causa: pueden provenir de un doble clic, de un reintento de red, de código personalizado o de un webhook que crea un pedido nuevo en vez de actualizar el existente. Primero hay que ver si comparten o no la misma transacción.
Comprueba si los duplicados comparten pago
Exporta IDs de pedido, timestamps, cliente, hash del carrito e IDs de transacción. Si un pedido no tiene intento de pago y el otro sí, el problema es distinto de un caso con dos pedidos ligados al mismo cobro.
Evidencia que separa navegador y servidor
- Peticiones de checkout del navegador.
- Logs de proxy o servidor en el mismo segundo.
- Entregas de webhooks y reintentos de la pasarela.
- Hooks personalizados ejecutados al crear o completar el pedido.
Dónde empieza la duplicación
- Doble envío: el botón sigue activo o JavaScript lanza dos peticiones.
- Reintento de red: una petición no idempotente se repite sin una segunda acción humana.
- Código personalizado: un hook o consumidor de API crea otro pedido.
- Webhook mal utilizado: el evento repetido vuelve a crear en vez de actualizar.
Haz idempotente la creación del pedido
- Bloquea envíos repetidos en el cliente y conserva una clave estable de checkout.
- Usa IDs de transacción o idempotencia en la integración de pago.
- Cambia hooks personalizados para que actualicen el pedido existente.
- Concilia duplicados históricos antes de cancelar, reembolsar o restaurar stock.
¿Doble envío o reintento técnico?
Dos peticiones del navegador apuntan al primer caso; una sola acción con una repetición posterior del servidor o integración apunta al segundo. Si además hay dos cargos, sigue la conciliación de pagos duplicados. Si el usuario repitió porque fallaba la confirmación, revisa la página Pedido recibido.
No borres los pedidos duplicados de golpe
Contienen evidencia de pago, impuestos, stock y auditoría necesaria para decidir cuál es el pedido autoritativo.
Cómo demostrar que está reparado
Una única acción del cliente debe crear un solo pedido; reintentos y webhooks repetidos no deben crear pedidos ni efectos secundarios nuevos, y los duplicados antiguos deben quedar conciliados con una decisión documentada.