Skills android-order
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/04551lh/order" ~/.claude/skills/openclaw-skills-android-order && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/04551lh/order" ~/.openclaw/skills/openclaw-skills-android-order && rm -rf "$T"
manifest:
skills/04551lh/order/SKILL.mdsource content
Android Order Skill (点餐)
This skill uses the paired Android device (
OpenClaw SMS Demo app with order capability) to manage an in-app menu and cart: get menu, add/remove items, view cart, submit order. Inspired by EdgeOSToolService (MEOW PAY); implementation is in-memory on the device (demo, no real POS backend).
When to use this skill
- User asks to order food/drinks, view menu, add to cart, or submit an order on the paired Android device: use the
commands below.order.*
Commands overview
| Command | Description |
|---|---|
| Return menu (id, name, priceCents, price). |
| Return current cart with quantities and subtotals. |
| Add by or (and optional ). |
| Remove by or (and optional ). |
| Clear cart. |
| Submit cart as order; returns summary (demo only). |
| Add multiple items: = . |
How to call the underlying commands
Invoke via the OpenClaw gateway node invoke API:
- command: one of
,order.getGoods
,order.getSelectedGoods
,order.addGoods
,order.removeGoods
,order.clearGoods
,order.submitOrder
.order.batchAddGoods - paramsJSON: JSON object string, or
for no-param commands.null
order.getGoods
:command"order.getGoods"
:paramsJSON
ornull"{}"- Success: payload is a JSON array of
.{ "id", "name", "priceCents", "price" }
order.getSelectedGoods
:command"order.getSelectedGoods"
:paramsJSON
ornull"{}"- Success: payload is a JSON array of cart items with
,id
,name
,quantity
,priceCents
.subtotalCents
order.addGoods
-
:command"order.addGoods" -
: provide id or name (or both); optional quantity (default 1).paramsJSON{ "id": "1", "quantity": "2" }or
{ "name": "拿铁", "quantity": "1" } -
Success: payload includes
andsuccess: true
(e.g. "已添加 拿铁 x1").message
order.removeGoods
:command"order.removeGoods"
: same shape as addGoods (paramsJSON
orid
, optionalname
).quantity
order.clearGoods
:command"order.clearGoods"
:paramsJSON
ornull
."{}"
order.submitOrder
:command"order.submitOrder"
:paramsJSON
ornull
."{}"- Success: payload includes
,success
,message
,totalCents
. Cart is cleared after submit.items - Error:
if cart is empty.CART_EMPTY
order.batchAddGoods
:command"order.batchAddGoods"
:paramsJSON{ "list": "[{\"id\":\"1\",\"quantity\":2},{\"id\":\"2\",\"quantity\":1}]" }- Success: payload includes
andsuccess
(e.g. "已批量添加 2 项").message
Error handling
- GOODS_NOT_FOUND: No menu item matched the given id or name. Suggest calling
to see the menu.order.getGoods - NOT_IN_CART: Item not in cart when removing.
- CART_EMPTY: Cannot submit when cart is empty.
- INVALID_REQUEST: Missing or malformed params (e.g. empty
for batchAddGoods).list
Demo menu (default on device)
The in-app menu includes items such as: 拿铁, 美式, 卡布奇诺, 三明治, 沙拉, 蛋糕 (with ids "1"–"6"). Use
order.getGoods to get the current list and prices.
Safety notes
- This is a demo flow: submit order does not charge or send to a real POS. Do not expose as real payment.
- Prefer confirming with the user before submitting an order (e.g. read back cart and total).