Restaurant delivery
Questi contenuti non sono ancora disponibili nella tua lingua.
Delivery lets each restaurant own its own courier experience (not a marketplace). Guests order from the public menu, choose Delivery, pay by card or cash when you allow it, and track the rider live.
Requirements
Section titled “Requirements”| Need | Where |
|---|---|
Plan feature delivery |
Same plans that include order-ahead by default |
| Restaurant coordinates | Restaurant profile → address with lat/lng |
| At least one zone | Delivery & Takeaway → Delivery tab |
| Enable delivery | Delivery & Takeaway → Delivery → Enable delivery |
| Stripe (for card) | Payments onboarding — or cash-only if Allow cash / pay on delivery is on |
Guest flow
Section titled “Guest flow”- Landing Order → storefront.
- Choose Pickup or Delivery (when both are enabled).
- For delivery: search address → confirm zone/fee/ETA → pay card or cash.
- After accept, status advances to out for delivery / delivered.
- Track link uses MapLibre + live GPS while the driver is on duty.
Staff flow
Section titled “Staff flow”| Role | Actions |
|---|---|
| CRM Orders | Accept/reject, advance status, see delivery badge + address |
| CRM Dispatch | Register drivers (team members), create multi-stop runs, start runs, ETA override |
| CRM Delivery settings | Enable, accepting, cash, prep/load ETA knobs, zones |
| Operator app Delivery | Go on duty (GPS), mark stops picked up / delivered |
Payments
Section titled “Payments”- Card (default): auth-then-capture on accept (same as pickup prepaid).
- Cash: opt-in
delivery_pay_on_delivery. No Stripe;paid_atstamps when marked delivered.
Ops env (platform)
Section titled “Ops env (platform)”| Env | Purpose |
|---|---|
ROUTING_BASE_URL |
OSRM-compatible router for drive ETAs (self-host in prod) |
GEOCODER_BASE_URL |
LocationIQ: https://eu1.locationiq.com/v1 (EU) or https://us1.locationiq.com/v1 |
GEOCODER_API_KEY |
LocationIQ access token (dashboard → Access Token). Alias: LOCATIONIQ_API_KEY |
MAP_STYLE_URL |
MapLibre style (default OpenFreeMap liberty) |
PUBLIC_BOOKING_BASE_URL / EIGHTY_SIX_PUBLIC_URL |
Track links in emails |
NATS_URL |
Live location fan-out to track SSE |
Without routing, the API falls back to zone base drive minutes. Without geocoder base/key, address search returns unavailable (guests need coordinates another way).
LocationIQ setup (platform)
Section titled “LocationIQ setup (platform)”- Create a LocationIQ account and copy the Access Token.
- Prefer eu1 if most restaurants/guests are in Europe.
- Seal into
eighty-six-api-config(staging + production separately):
# After merging existing secret keys, add:# GEOCODER_BASE_URL=https://eu1.locationiq.com/v1# GEOCODER_API_KEY=<token>kubectl create secret generic eighty-six-api-config \ --namespace booking \ --from-literal=GEOCODER_BASE_URL=https://eu1.locationiq.com/v1 \ --from-literal=GEOCODER_API_KEY='YOUR_TOKEN' \ # ...all other existing keys... --dry-run=client -o yaml \ | kubeseal --format yaml \ > infra/k8s/overlays/staging/eighty-six-api-sealed-secret.yamlFree tier is typically enough for early multi-restaurant volume if address search is button/Enter-driven and Redis-cached (24h).
