E-commerce kit
Every component, in its real states. AI builds the shop window; this is the back office.
Orders
@onsystem-ecommerce/OrdersListThe screen the whole e-commerce audit points at. Filter to Cancelled and watch the caption change with the data: a real store admin stayed captioned 'All Orders' while showing only cancelled rows. Then search for something that isn't there. One activeFilters array drives the caption, the empty state and the result count together, so they cannot disagree.
| Order | Customer | Placed | Items | Payment | Status | Total |
|---|---|---|---|---|---|---|
| ORD-7829 | Sarah Johnson · [email protected] | 27 Jul 2026 | 3 | Credit card | Completed | $245.00 |
| ORD-7828 | Michael Chen · [email protected] | 27 Jul 2026 | 2 | PayPal | Processing | $189.50 |
| ORD-7827 | Emma Wilson · [email protected] | 26 Jul 2026 | 5 | Credit card | Shipped | $432.00 |
| ORD-7826 | James Brown · [email protected] | 26 Jul 2026 | 1 | Debit card | Completed | $67.25 |
| ORD-7825 | Lisa Anderson · [email protected] | 25 Jul 2026 | 4 | Credit card | Pending | $312.80 |
| ORD-7824 | David Martinez · [email protected] | 25 Jul 2026 | 2 | PayPal | Shipped | $156.00 |
Order detail
@onsystem-ecommerce/OrderDetailLine items, a customer, and a total that is computed rather than stated. There is no subtotal prop: it is derived from the items, so the list and the total cannot drift apart.
ORD-7829
ShippedPlaced 27 Jul 2026| Product | Qty | Unit | Line total |
|---|---|---|---|
Ultraboost 22 — Black AP-UB22-BLK-9 | 1 | $180.00 | $180.00 |
Stoneware Mug — Sage HM-CER-MUG | 2 | $24.00 | $48.00 |
- Subtotal
- $228.00
- Shipping
- $6.50
- Tax
- $18.20
Products
@onsystem-ecommerce/ProductsListStock as a semantic status column. The band is derived per row through the same stockLevelFor() the badges and filters use, and the quantity and its reorder point stay visible as their own columns. A colour with no number behind it is the decorative badge the audit flagged.
| SKU | Product | Category | Price | On hand | Reorder at | Stock |
|---|---|---|---|---|---|---|
| AP-APP-G2 | AirPods Pro (2nd gen) | Audio | $249.00 | 0 | 25 | Out of stock |
| LG-CH-LRG | Canvas Holdall — Large | Bags | $119.00 | 8 | 20 | Low stock |
| LG-CH-STD | Canvas Holdall — Standard | Bags | $89.50 | 61 | 20 | In stock |
| SM-GW6-44 | Galaxy Watch 6 44mm | Wearables | $299.00 | 26 | 30 | Low stock |
| HM-CER-MUG | Stoneware Mug — Sage | Home | $24.00 | 340 | 60 | In stock |
| AP-UB22-BLK-9 | Ultraboost 22 — Black | Footwear | $180.00 | 214 | 40 | In stock |
Product detail
@onsystem-ecommerce/ProductDetailThe variant grid, plus a headline stock figure summed from it rather than stored beside it. Two independently stored stock numbers is the reconciliation failure one level up.
Canvas Holdall
LG-CH · Bags| Size \ Colour | Navy | Sage | Black |
|---|---|---|---|
| S | $89.50In stock24 on hand · reorder at 10CH-S-NVY | $89.50Low stock6 on hand · reorder at 10CH-S-SGE | not sold |
| M | $89.50In stock41 on hand · reorder at 12CH-M-NVY | $89.50Backordered0 on hand · reorder at 12CH-M-SGE | $94.00In stock18 on hand · reorder at 12CH-M-BLK |
| L | $94.00Low stock9 on hand · reorder at 12CH-L-NVY | not sold | $94.00Out of stock0 on hand · reorder at 12CH-L-BLK |
| XL | not sold | not sold | $99.00In stock33 on hand · reorder at 8CH-XL-BLK |
Inventory levels
@onsystem-ecommerce/InventoryLevelsEvery tile states its period and its unit. The audited dashboard put '+3.1%', '+12', '+45' and '+2.8%' in one row with nothing saying which were percentages. Rows are ordered worst-first, because an inventory screen that buries the out-of-stock items is not doing the merchant any favours.
Refunds
@onsystem-ecommerce/RefundFlowThe most destructive thing a merchant admin does. The refundable ceiling is computed from the order's own charges, over-refunds are blocked inline before the dialog opens, and confirming requires typing the order id: the failure mode is refunding the right amount against the wrong order.
- Subtotal
- $228.00
- Shipping
- $6.50
- Tax
- $18.20
Stock status
@onsystem-ecommerce/StockStatusNo level prop. It takes the quantity and the reorder point and derives the band, so a badge cannot claim a state the numbers do not support, and the threshold is always on screen.
Money total
@onsystem-ecommerce/MoneyTotalTakes a breakdown with no total field and computes the total itself. There is no prop through which a caller can state a figure that disagrees with the lines above it.
- Subtotal
- $228.00
- Discount
- −$20.00
- Shipping
- $6.50
- Tax
- $18.20
- Subtotal
- $228.00
- Shipping
- $6.50
- Tax
- $18.20
- Refunded
- −$252.70
Chart frame
@onsystem-ecommerce/ChartFrameHeight is a required number, applied as an inline style so it is resolved on the very first paint. The audited dashboard emitted three 'width(-1) and height(-1)' warnings because responsive charts sat inside parents that had not been laid out yet.
Variant matrix
@onsystem-ecommerce/VariantMatrixEvery axis pairing renders. A combination with no SKU is an explicit 'not sold' cell, never a blank one, because a reader cannot tell a blank from a loading bug.
| Size \ Colour | Navy | Sage | Black |
|---|---|---|---|
| S | $89.50In stock24 on hand · reorder at 10CH-S-NVY | $89.50Low stock6 on hand · reorder at 10CH-S-SGE | not sold |
| M | $89.50In stock41 on hand · reorder at 12CH-M-NVY | $89.50Backordered0 on hand · reorder at 12CH-M-SGE | $94.00In stock18 on hand · reorder at 12CH-M-BLK |
| L | $94.00Low stock9 on hand · reorder at 12CH-L-NVY | not sold | $94.00Out of stock0 on hand · reorder at 12CH-L-BLK |
| XL | not sold | not sold | $99.00In stock33 on hand · reorder at 8CH-XL-BLK |