doordash_item_options
Retrieve customization options for DoorDash menu items, including sides, extras, and modifications, to build complete orders programmatically.
Instructions
Get customization options for a menu item (sides, extras, modifications).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | DoorDash store ID | |
| item_id | Yes | Item ID from doordash_menu |
Implementation Reference
- src/tools/index.ts:263-291 (handler)The handler function for doordash_item_options that retrieves and formats the menu item options.
({ store_id, item_id }) => wrap(async () => { const details = await api.menu.getItemOptions(store_id, item_id); const lines: string[] = []; lines.push(`# ${details.name}`); if (details.description) lines.push(`*${details.description}*`); if (details.unitAmount) lines.push(`Base price: $${(details.unitAmount / 100).toFixed(2)}`); if (details.calories) lines.push(`Calories: ${details.calories}`); if (details.dietaryTags.length > 0) lines.push(`Dietary: ${details.dietaryTags.join(", ")}`); if (details.quantityLimit > 0) lines.push(`Max quantity: ${details.quantityLimit}`); lines.push(""); if (details.optionGroups.length === 0) { lines.push( "No customization options. This item can be added directly.", ); } for (const group of details.optionGroups) { formatOptionGroup(lines, group, 2); } lines.push( "*To add with options, call doordash_add_to_cart with the `options` parameter.*", ); return ok(lines.join("\n")); - src/tools/index.ts:253-262 (registration)The registration of the doordash_item_options tool, including its description and input schema.
server.registerTool( "doordash_item_options", { description: "Get customization options for a menu item (sides, extras, modifications).", inputSchema: { store_id: z.string().describe("DoorDash store ID"), item_id: z.string().describe("Item ID from doordash_menu"), }, },