Skip to main content

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
StepFromToAction
6.1RideNDineRideNDineInternal β€” create delivery job
6.2RideNDineDriverDriver App notification
6.3DriverRideNDineDriver accepts job
6.4RideNDineCOOCOPOST /webhooks/delivery-status
6.5COOCOCustomerInternal β€” 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​

FieldValue
orders.delivery_statusDRIVER_ASSIGNED
orders.delivery_driver_namedriver name
orders.delivery_eta_minutesETA 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.