К основному содержанию
скилл CX Codex

doordash — скилл для Claude Code: поиск ресторанов и корзина

Скилл для работы с DoorDash через CLI: ищет рестораны, показывает меню, ведёт корзину и историю заказов.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add imoonkey/openweb --skill doordash -a claude-code
Открыть на GitHub

Что делает doordash

Скилл даёт агенту пять операций DoorDash: searchRestaurants ищет заведения по ключевому слову, getRestaurantMenu отдаёт карточку магазина и полное меню, getOrderHistory показывает прошлые заказы, addToCart и removeFromCart правят корзину. Вызовы идут через openweb doordash exec, например openweb doordash exec searchRestaurants '{"query": "pizza"}'.

Порядок работы жёсткий: сначала searchRestaurants даёт storeId, потом getRestaurantMenu — itemId, name, displayPrice и menuBook.id. Для addToCart нужны все шесть полей сразу: storeId, itemId, itemName, currency, unitPrice в центах и menuId. Если передать часть, сервер вернёт BAD_USER_INPUT. Цена в unitPrice — центы, а не доллары, так что displayPrice придётся пересчитать самому.

getOrderHistory требует авторизации и отдаёт заказы постранично через limit и offset. В результатах поиска попадаются не магазины, а подсказки по продуктам — их отсекают по resultType. Ещё две мелочи, на которых легко споткнуться: removeFromCart возвращает null вместо подытога и списка заказов, если удалённый товар был последним в корзине, а formattedAddress в истории заказов часто пустой.

Какие задачи решает

  • найти ресторан по запросу и получить его storeId
  • посмотреть меню заведения и выбрать позицию с ценой
  • собрать все шесть полей для добавления товара в корзину
  • удалить позицию из корзины по cartId и itemId
  • просмотреть прошлые заказы постранично

Примеры запросов агенту

  • Найди пиццерии рядом и покажи меню первой
  • Добавь в корзину 12-дюймовую пиццу с сыром из этого меню
  • Покажи последние 5 заказов

Как установить doordash

1Через Skills CLI (Vercel)

npx skills add imoonkey/openweb --skill doordash -a claude-code

2Вручную: положить файлы

~/.claude/skills/doordash/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/doordash/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о doordash

Как установить doordash в Claude Code?

Выполните npx skills add imoonkey/openweb --skill doordash -a claude-code. Скилл встанет в ~/.claude/skills/doordash/SKILL.md.

Что делает скилл doordash?

Даёт агенту доступ к DoorDash: поиск ресторанов, меню, история заказов и операции с корзиной через команды openweb doordash exec.

Почему addToCart возвращает BAD_USER_INPUT?

Сервер требует все шесть полей: storeId, itemId, itemName, currency, unitPrice в центах и menuId. Значения берутся из ответа getRestaurantMenu, для аккаунтов США currency — "USD".

Исходный текст

SKILL.md · MIT
# DoorDash

## Overview
Food delivery marketplace — search restaurants, browse menus, view order history, manage cart.

## Workflows

### Search and browse menu
1. `searchRestaurants(query)` → pick restaurant → `storeId`
2. `getRestaurantMenu(storeId)` → browse categories → pick item → `itemId`, `name`, `displayPrice`, `menuBook.id`

### Add to cart, then remove
1. `searchRestaurants(query)` → `storeId`
2. `getRestaurantMenu(storeId)` → pick item → `itemId`, `name` (→ `itemName`), `displayPrice` (→ `unitPrice` in cents), `menuBook.id` (→ `menuId`)
3. `addToCart(storeId, itemId, itemName, currency='USD', unitPrice, menuId, quantity)` → `addCartItemV2.id` (→ `cartId`), `addCartItemV2.orders[0].orderItems[0].id` (→ `itemId` for remove)
4. `removeFromCart(cartId, itemId)` → updated cart (subtotal/orders are `null` when cart becomes empty)

### Review past orders
1. `getOrderHistory(limit)` → order list with items, totals, timestamps

## Operations

| Operation | Intent | Key Input | Key Output | Notes |
|-----------|--------|-----------|------------|-------|
| searchRestaurants | search restaurants by keyword | query | name, storeId, categories, imageUrl | entry point; includes non-store results (check resultType) |
| getRestaurantMenu | get store detail + full menu | storeId ← searchRestaurants | storeHeader, menuBook (id → menuId), itemLists (id, name, displayPrice) | optional: menuId, fulfillmentType |
| getOrderHistory | list past orders | limit, offset | orders (store, items, grandTotal, timestamps) | paginated; requires auth |
| addToCart | add menu item to cart | storeId ← searchRestaurants; itemId, itemName, unitPrice (cents), menuId ← getRestaurantMenu; currency='USD' | addCartItemV2.id (cartId), addCartItemV2.orders[0].orderItems[0].id | write op; all six input fields are server-required |
| removeFromCart | remove item from cart | cartId, itemId ← addToCart | removeCartItemV2 (subtotal/orders null if cart now empty) | write op; mutation takes `cartId`/`itemId` directly — no `RemoveCartItemInput` wrapper |

## Quick Start

```bash
# Search for restaurants
openweb doordash exec searchRestaurants '{"query": "pizza"}'

# Get a restaurant's menu (returns itemId, name, displayPrice, menuBook.id)
openweb doordash exec getRestaurantMenu '{"storeId": "245613"}'

# View recent orders
openweb doordash exec getOrderHistory '{"limit": 5}'

# Add item to cart — all six fields required by upstream
openweb doordash exec addToCart '{"addCartItemInput": {"storeId": "245613", "itemId": "23864478062", "itemName": "12 Inch Plain Cheese Pizza", "currency": "USD", "unitPrice": 1440, "menuId": "57979746", "quantity": 1}}'

# Remove item from cart (cartId + itemId from addToCart response)
openweb doordash exec removeFromCart '{"cartId": "<addCartItemV2.id>", "itemId": "<addCartItemV2.orders[0].orderItems[0].id>"}'
```

## Known Limitations

- `addCartItemInput` requires six fields (storeId, itemId, itemName, currency, unitPrice in cents, menuId) — partial input returns `BAD_USER_INPUT`. All values come from `getRestaurantMenu`; `currency` is `"USD"` for US accounts.
- `removeFromCart` returns nulls for subtotal/currencyCode/fulfillmentType/restaurant/orders when the removed item was the last one in the cart (cart UUID still returned).
- `formattedAddress` in order history is often null.
- Search results include non-store items (grocery suggestions) — filter via `resultType`.

© imoonkey · MIT · imoonkey/openweb

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
Snappfood & SnappMarket sepehr071 MCP-сервер для поиска еды и продуктов в Иране, сравнения цен и проверки доставки. Он работает только на чтение и не оформляет заказы. CX Codex +1 ★ 35звёзд репо loops-cli loops-so Скилл для работы с Loops CLI из терминала: установка, авторизация, ключи API и команды для контактов, кампаний и транзакционных писем. CX Codex +1 1 500установок whatsapp membrane Скилл подключает WhatsApp к вашему агенту: отправка текста, картинок, документов, реакций и шаблонов. Пригодится, когда нужно вести переписку из кода. CX Codex +1 368установок coolify-manager ajmcclary Скилл для работы с Coolify через официальный CLI и API: диагностика упавших сервисов, логи, SSL, контейнеры, WordPress. CX Codex +1 502установок sitecore membrane Скилл подключает агента к Sitecore через Membrane: поиск действий, запуск операций и прямые запросы к API. Пригодится, когда нужно читать контент и записи из CMS прямо из чата. CX Codex +1 340установок mcp Zomato Подключает ассистента к каталогу и доставке еды Zomato. Помогает выбирать рестораны, проверять цены в меню и оформлять заказы прямо в окне чата. CX Codex +1 ★ 186звёзд репо

Из того же набора4

Спонсоры проекта

Компании, которые помогают держать аналитику открытой