SkillHub

order

v1.0.0

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).

Sourced from ClawHub, Authored by 04551lh

Installation

Please help me install the skill `order` from SkillHub official store. npx skills add 04551lh/order

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).