HomeBrowseUpload
← Back to registry
// Skill profile

order

Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).

by 04551lh · published 2026-03-20

数据处理API集成
Total installs
0
Stars
★ 1
Last updated
2026-03
// Install command
$ claw add gh:04551lh/04551lh-order
View on GitHub
// Full documentation

---

name: android-order

description: >-

Order food/drinks (点餐) on an Android device paired as an OpenClaw node.

Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).

version: 1.0.0

user-invocable: true

metadata:

openclaw:

capabilities: ["order"]

commands:

- name: order.getGoods

description: Get the menu / goods list (id, name, price).

params: []

- name: order.getSelectedGoods

description: Get current cart / selected items.

params: []

- name: order.addGoods

description: Add a product to the cart by id or name (fuzzy). Default quantity 1.

params:

- name: id

type: string

description: Goods ID from the menu (e.g. "1").

- name: name

type: string

description: Goods name, supports fuzzy match (e.g. "拿铁", "美式").

- name: quantity

type: string

description: Quantity, default "1".

- name: order.removeGoods

description: Remove a product from the cart by id or name.

params:

- name: id

type: string

description: Goods ID.

- name: name

type: string

description: Goods name (fuzzy).

- name: quantity

type: string

description: Quantity to remove, default "1".

- name: order.clearGoods

description: Clear all items in the cart.

params: []

- name: order.submitOrder

description: Submit the current cart as an order (demo; no real payment).

params: []

- name: order.batchAddGoods

description: Add multiple items at once. list is JSON array [{"id":"1","quantity":2},...].

params:

- name: list

type: string

description: JSON array of objects with id and quantity.

---

# 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 `order.*` commands below.
  • Commands overview

    | Command | Description |

    |--------|-------------|

    | `order.getGoods` | Return menu (id, name, priceCents, price). |

    | `order.getSelectedGoods` | Return current cart with quantities and subtotals. |

    | `order.addGoods` | Add by `id` or `name` (and optional `quantity`). |

    | `order.removeGoods` | Remove by `id` or `name` (and optional `quantity`). |

    | `order.clearGoods` | Clear cart. |

    | `order.submitOrder` | Submit cart as order; returns summary (demo only). |

    | `order.batchAddGoods` | Add multiple items: `list` = `[{"id":"1","quantity":2},...]`. |

    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 `null` for no-param commands.
  • order.getGoods

  • `command`: `"order.getGoods"`
  • `paramsJSON`: `null` or `"{}"`
  • Success: payload is a JSON array of `{ "id", "name", "priceCents", "price" }`.
  • order.getSelectedGoods

  • `command`: `"order.getSelectedGoods"`
  • `paramsJSON`: `null` or `"{}"`
  • Success: payload is a JSON array of cart items with `id`, `name`, `quantity`, `priceCents`, `subtotalCents`.
  • order.addGoods

  • `command`: `"order.addGoods"`
  • `paramsJSON`: provide **id** or **name** (or both); optional **quantity** (default 1).
  • ```json

    { "id": "1", "quantity": "2" }

    ```

    or

    ```json

    { "name": "拿铁", "quantity": "1" }

    ```

  • Success: payload includes `success: true` and `message` (e.g. "已添加 拿铁 x1").
  • order.removeGoods

  • `command`: `"order.removeGoods"`
  • `paramsJSON`: same shape as addGoods (`id` or `name`, optional `quantity`).
  • order.clearGoods

  • `command`: `"order.clearGoods"`
  • `paramsJSON`: `null` or `"{}"`.
  • order.submitOrder

  • `command`: `"order.submitOrder"`
  • `paramsJSON`: `null` or `"{}"`.
  • Success: payload includes `success`, `message`, `totalCents`, `items`. Cart is cleared after submit.
  • Error: `CART_EMPTY` if cart is empty.
  • order.batchAddGoods

  • `command`: `"order.batchAddGoods"`
  • `paramsJSON`: `{ "list": "[{\"id\":\"1\",\"quantity\":2},{\"id\":\"2\",\"quantity\":1}]" }`
  • Success: payload includes `success` and `message` (e.g. "已批量添加 2 项").
  • Error handling

  • **GOODS_NOT_FOUND**: No menu item matched the given id or name. Suggest calling `order.getGoods` to see the menu.
  • **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 `list` for batchAddGoods).
  • 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).
  • // Comments
    Sign in with GitHub to leave a comment.
    // Related skills

    More tools from the same signal band