Phase 6 β Delivery Dispatch
The RideNDine flow creates a delivery job and dispatches a driver once the order is READY and paid. COOCO receives driver information via webhook.
Overviewβ
RideNDine (internal) β Driver App β RideNDine β COOCO (webhook) β Customer
| Step | From | To | Action |
|---|---|---|---|
| 6.1 | RideNDine | RideNDine | Internal β create delivery job |
| 6.2 | RideNDine | Driver | Driver App notification |
| 6.3 | Driver | RideNDine | Driver accepts job |
| 6.4 | RideNDine | COOCO | POST /webhooks/delivery-status |
| 6.5 | COOCO | Customer | Internal β display tracking |
Step 6.1 β Create Delivery Job (RideNDine Internal)β
RideNDine internally creates a delivery job once the order is READY and paid. COOCO does not send anything at this step.
Step 6.2 β Notify Driver (RideNDine β Driver App)β
RideNDine calls a driver via the Driver App. COOCO does not have its own driver app.
Step 6.3 β Driver Accepts Orderβ
The driver accepts the job on the Driver App. COOCO is not involved.
Step 6.4 β Webhook: Driver Assignedβ
From: RideNDine β To: COOCO
Endpoint (COOCO expose): {DIRECTUS_URL}/ridendine/webhooks/delivery-status
Method: POST
Purpose: COOCO receives driver information and ETA.
Payload receivedβ
{
"event": "driver_assigned",
"ridendine_order_id": "<string>",
"driver": {
"name": "<driver name>",
"phone": "<driver phone>"
},
"eta_minutes": 25
}
Save to Directusβ
| Field | Value |
|---|---|
orders.delivery_status | DRIVER_ASSIGNED |
orders.delivery_driver_name | driver name |
orders.delivery_eta_minutes | ETA in minutes |
Step 6.5 β Display Tracking (Internal)β
From: COOCO β To: Customer
COOCO reads orders from Directus and displays tracking information on /my-orders/:id.
No requests are sent to RideNDine at this step.