# Skill: order card (webshop)

Use when: showing an order on a screen with room, such as the webshop order page or the merchant view. Input: 1 Order (`schema/order.schema.json`).

Limits: 4 sizes. S (1 line, for lists), M (card), L (card + why panel), XL (page). Same data, fewer rows at smaller sizes. The agent state and the total never drop.

Must show, in this order:
1. Header: merchant name, order id, agent state pill (`agent.*`).
2. 1 row per line: part name, brand, part number, quantity, contract price. A stamp under the price: source and age.
3. Fit: the score, its band colour (`fit.*`) and 1 line of why.
4. Delivery: where from (warehouse or branch), arrival time, stamp.
5. Total, and the approval state when over the buyer's limit.
6. Undo with its deadline while open. After it closes: "Return in 1 message".

Tokens: `card.*`, `action.*`, `stamp.*`, `agent.*`, `fit.*`.

Checked: against `rules.md`, then a person reviews it. A Teams card as JSON also runs `pnpm ds:check-card`, the only shape the script reads today: a source and age on every number, at most 3 actions, no action on a safety part.
