Draft a delivery order
draft_delivery_orderDrafts a food/drink DELIVERY order without placing it: prices the order from the venue's menu (choices and sides included), finds the delivery address, and returns the items, delivery fee, total, distance and estimated delivery time, WITHOUT placing anything. It returns a draftId, which confirm_delivery_order places; place_delivery_order does both steps and follows the connection's permission setting. Requires the WaitApp account to be connected (the person signs in when adding WaitApp to their AI app). Confirm this venue's city/countryCode (from search_venues) matches where the guest is. Use list_menu_items for item ids and for each item's optionGroups: pass picked choices as selectedOptions (group name + choice name); a group with required=true must be chosen. Give the fullest address you have (street or estate, area, city). Fails clearly if the venue is closed, doesn't deliver, or the address is out of its delivery area.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| payment | No | How the guest pays for the meal. pay_on_delivery: nothing is charged here; they pay the venue/rider on delivery (default where the venue allows it). mobile_money: when the order is confirmed, a payment prompt is sent to mobileMoneyNumber and the guest approves it on their own phone. Some venues require mobile_money. The delivery fee is always paid to the rider on delivery. | |
| guestName | Yes | ||
| guestPhone | Yes | The recipient's phone; the rider calls it on arrival | |
| restaurantId | Yes | ||
| deliveryAddress | No | Full delivery address, e.g. 'Plot 12, Foxtale Court, Kawanda Road, Rhodes Park, Lusaka'. Not needed when savedLocationId is given | |
| savedLocationId | No | The id of one of the person's saved locations (see list_saved_locations), used instead of deliveryAddress | |
| mobileMoneyNumber | No | Required for mobile_money: the guest's own mobile money number |