Edición: Exclusivo de Modal COD Form PRO (v5.0+) | Custom Post Type:
abandoned_carts (Menú COD Form → Carritos & abandonos)En el comercio electrónico tradicional, un carrito abandonado solo se registra si el usuario llega hasta la página de Checkout. Con Modal COD Form PRO v5.0, el script asíncrono cod-abandoned-cart.js y la clase PRCOD_Abandoned_Cart_Handler capturan los datos del cliente y su selección de productos directamente mientras escribe en el formulario modal, sin ralentizar su navegación.
1. ¿Cómo Funciona la Captura en Tiempo Real en el Modal?
- Disparo Inicial (Debounce de 2000 ms): Tan pronto el visitante introduce un correo electrónico válido en el campo
#emaildel formulario modal, se ejecuta la acción AJAXcod_save_abandoned_cartcreando un registro con ID de sesión único (cod_session_{timestamp}_{rand}) en estadopending. - Actualización Progresiva de Datos (Debounce de 1000 ms): A medida que el usuario completa su Nombre (
#first_name), Apellido (#last_name), Teléfono/WhatsApp (#phone) o Documento (#document), el registro se actualiza automáticamente en segundo plano. - Sincronización de Ofertas por Cantidad y Upsells 1-Tick: Si el comprador cambia de escalón en una Oferta por Cantidad o marca productos dentro del carrusel del Upsell 1-Tick, el carrito abandonado guarda exactamente qué productos de Upsell tenía marcados (con la bandera
is_upsell: truey su precio con descuento verificado en el servidor).
2. Máquina de Estados del Ciclo de Vida del Carrito Abandonado
Cada registro dentro de COD Form → Carritos & abandonos evoluciona automáticamente a través de 6 estados almacenados en el metadato cod_ac_status:
| Estado Interno | Etiqueta en Panel | Cuándo se Asigna y Qué Acción Dispara |
|---|---|---|
pending |
⏳ Pendiente | El cliente acaba de ingresar sus datos en el modal y aún no se ha cumplido el tiempo de corte configurado (por defecto 60 minutos en cod_form_abandoned_cart_cutoff_time). |
abandoned |
🔴 Abandonado | La tarea programada (WP-Cron cada 5 minutos) detecta que el carrito lleva más del tiempo de corte en pending sin comprar. Dispara el hook do_action('cod_cart_abandoned', $post_id) y el Webhook de Carrito Abandonado. |
completed |
✅ Completado | El cliente finalizó su compra normalmente antes de que se cumpliera el tiempo de abandono. Guarda el ID del pedido en cod_ac_order_id con enlace directo a la orden. |
recovered |
🎉 Recuperado | El carrito ya estaba en estado abandoned, pero el cliente regresó más tarde y completó la orden (por COD o por pasarela). El buscador inteligente (find_pending_or_abandoned_cart) cruza por session_id → email → phone, enlaza la orden creada y dispara el Webhook de Carrito Recuperado. |
blocked |
🚫 Bloqueado | El intento de compra fue detenido por el motor de Prevención de Fraude. Registra la razón exacta en cod_ac_block_reason y dispara el Webhook de Carrito Bloqueado. |
expired |
⏰ Expirado | Carritos abandonados con más de 30 días de antigüedad marcados automáticamente por la rutina de limpieza. |
Siguientes Pasos
- 📲 Aprende a recuperar estos carritos por WhatsApp y exportarlos a Excel/CSV en Recuperación por WhatsApp y Exportación CSV.
- 🔗 Automatiza el envío de mensajes con n8n, Make o Zapier en Webhooks en Modal COD Form PRO.