Edición: Exclusivo de Modal COD Form PRO (v5.0+) | Archivo Origen:
includes/woocommerce-extensions/woo-ext-webhook.phpEsta referencia técnica detalla la estructura exacta del cuerpo JSON enviado mediante peticiones HTTP POST (con cabecera Content-Type: application/json; charset=utf-8, timeout: 10s y httpversion: 1.1) en los 4 eventos de Webhook de Modal COD Form PRO v5.0.
1. Evento order_created (Nueva Orden Confirmada)
Se dispara en cod_order_finalized (y como respaldo en woocommerce_checkout_order_processed si aún no tiene el metadato _prcod_order_webhook_sent = 'yes'):
{
"event_type": "order_created",
"order_id": 1452,
"order_number": "1452",
"subtotal": 200000,
"discount": 40000,
"shipping_cost": "15000",
"shipping_method": "Tarifa plana nacional",
"total": 215000,
"currency": "COP",
"currency_symbol": "$",
"payment_method": "cod",
"payment_method_title": "Contra entrega (COD)",
"status": "on-hold",
"date_created": "2026-10-30 14:22:10",
"source_url": "https://tutienda.com/producto/zapatillas-pro/",
"customer_note": "Entregar en portería",
"products": [
{
"product_id": 101,
"variation_id": 105,
"sku": "ZAP-NEG-40",
"name": "Zapatillas Deportivas PRO - Negro, 40",
"unit_price": "80000",
"subtotal": "200000",
"price": "160000",
"quantity": 2,
"variation_attributes": {
"attribute_pa_color": "negro",
"attribute_pa_talla": "40"
},
"is_upsell": false,
"upsell_type": ""
},
{
"product_id": 205,
"variation_id": 0,
"sku": "KIT-LIMP-01",
"name": "Kit de Limpieza Impermeabilizante",
"unit_price": "40000",
"subtotal": "40000",
"price": "40000",
"quantity": 1,
"variation_attributes": [],
"is_upsell": true,
"upsell_type": "one_tick"
}
],
"billing": {
"first_name": "Carlos",
"last_name": "Ramírez",
"full_name": "Carlos Ramírez",
"address_1": "Cra 43A # 14-50",
"address_2": "Edificio Almagran Apto 802",
"district": "",
"city": "Medellín",
"state": "ANT",
"state_name": "Antioquia",
"postcode": "050021",
"country": "CO",
"email": "carlos@ejemplo.com",
"phone": "+573001234567",
"document": "1037654321"
},
"shipping": {
"first_name": "Carlos",
"last_name": "Ramírez",
"full_name": "Carlos Ramírez",
"address_1": "Cra 43A # 14-50",
"address_2": "Edificio Almagran Apto 802",
"district": "",
"city": "Medellín",
"state": "ANT",
"state_name": "Antioquia",
"postcode": "050021",
"country": "CO"
}
}
2. Evento abandoned_cart (Carrito Abandonado)
Emitido por prcod_send_abandoned_cart_to_webhook($cart_id) cuando el cron convierte un carrito pendiente en abandonado:
{
"event_type": "abandoned_cart",
"cart_id": 890,
"status": "abandoned",
"customer": {
"email": "maria@ejemplo.com",
"first_name": "María",
"last_name": "Gómez",
"phone": "+573109876543",
"document": "52987654"
},
"cart": {
"total": 140000,
"currency": "$",
"items": [
{
"product_id": 101,
"variation_id": 0,
"name": "Producto Principal",
"price": 100000,
"quantity": 1,
"is_upsell": false,
"upsell_type": ""
},
{
"product_id": 205,
"variation_id": 0,
"name": "Kit de Limpieza (Upsell)",
"price": 40000,
"quantity": 1,
"is_upsell": true,
"upsell_type": "one_tick"
}
],
"applied_coupons": []
},
"timestamps": {
"created_at": "2026-10-30 13:00:00",
"updated_at": "2026-10-30 13:02:15",
"abandoned_at": "2026-10-30 14:00:00"
},
"source_url": "https://tutienda.com/producto/zapatillas-pro/",
"session_id": "cod_session_1730311200_a8f92b"
}
3. Evento cart_recovered (Carrito Recuperado)
Envía la misma estructura que abandoned_cart, añadiendo el ID del pedido en WooCommerce:
"event_type": "cart_recovered""status": "recovered""order_id": 1455"timestamps.recovered_at": "2026-10-30 15:10:42"
4. Evento cart_blocked (Intento Bloqueado por Antifraude)
Incluye los datos del comprador, el carrito que intentaba adquirir y la causa exacta del bloqueo:
"event_type": "cart_blocked""status": "blocked""block_reason": "El número de teléfono ha superado el límite de pedidos permitidos en las últimas 24 horas.""blocked_at": "2026-10-30 15:30:00"
Artículos Relacionados
- 🔗 Guía de Configuración de Webhooks con n8n, Make y Zapier.
- 🗄️ Siguiente documento: Esquema de Base de Datos: CPTs, wp_options y Post Meta.