Demo Units
Demo Units is a register of every phone, laptop or gadget you keep on the counter or shelf purely for customers to try — separate from sellable stock — tracking its condition, floor location and how much value it has lost since being placed on display.
Overview
Each demo unit record captures the product name, brand, model, color, storage, an optional IMEI (for demo phones that still carry one), the floor/counter location it sits at, and its physical Condition (Excellent/Good/Fair/Damaged).
A Purchase Value and a Current/Written-down Value are tracked side by side — the Current Value is shown in orange whenever it has dropped below the Purchase Value, flagging units that have lost resale value from display wear.
A unit moves through four Status states — On Display, Written Down, Sold, Retired — filterable with one-click status pills that also show a live count per status.
This is a simple standalone ledger: it does not touch your regular Products/Inventory stock counts, so demo units never accidentally get billed or sold through normal checkout.
Before You Start
- No special setup is required — this is a self-contained ledger; you do not need to create a matching Product record first (Product Name is free text).
- If you want to track a demo phone by IMEI, have the 15-digit IMEI on hand when adding the record.
Step-by-Step Guide
1 Add a demo unit to the floor
- Click Add Demo Unit.
- Enter the Product Name (required) — e.g. "Samsung Galaxy S24 Ultra" — plus optional Brand, Model, Color and Storage.
- Optionally enter the IMEI if the demo unit is a real phone with one, and the Floor Location (e.g. "Counter 2 / Window") so staff know where to find it.
- Pick a Condition (Excellent/Good/Fair/Damaged) and the Date Placed on Display, then enter Purchase Value and Current/Written-down Value.
- Click Save — the unit defaults to On Display status.
2 Write down a unit's value or change its condition
- Click the edit (pencil) icon on any row to reopen the form — editing an existing unit additionally reveals a Status dropdown (On Display / Written Down / Sold / Retired) that is hidden when first creating a record.
- Lower the Current/Written-down Value as the demo unit accumulates wear, and update Condition if it has degraded (e.g. Excellent → Fair).
- Set Status to Written Down once you have marked down its value for eventual clearance sale, Sold once it leaves the floor as a sale, or Retired once it is taken out of service entirely.
3 Find and filter demo units
- Use the All / On Display / Written Down / Sold / Retired filter pills across the top — each shows a live count of units in that state.
- Use the search box to filter by product name, brand or IMEI as you type.
- Click the trash icon on a row to permanently delete a demo unit record after a confirmation prompt.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Add Demo Unit | Opens the form to register a new floor/display unit. |
Status filter pills (All/On Display/Written Down/Sold/Retired) | Filters the table by lifecycle status; each pill shows a live count. |
Search box | Filters visible rows by product name, brand or IMEI as you type. |
Product Name * | Required free-text name of the demo device; not linked to your Products catalogue. |
Brand / Model / Color / Storage | Optional descriptive fields shown together as a subtitle under the product name in the table. |
IMEI | Optional 15-digit IMEI, shown in monospace font in the table for demo units that are real phones. |
Floor Location | Free-text note on where the unit physically sits (e.g. "Counter 2 / Window") so staff can locate it. |
Condition | Excellent / Good / Fair / Damaged — shown as a color-coded badge (green/blue/yellow/red). |
Date Placed on Display | The date the unit went out for customer handling/demo use. |
Purchase Value | What the unit originally cost; shown as a plain right-aligned amount in the table. |
Current / Written-down Value | The unit's present value; rendered in orange whenever it is lower than the Purchase Value, flagging depreciation from display wear. |
Status (edit mode only) | On Display / Written Down / Sold / Retired — only editable once a unit already exists; new units always start as On Display. |
Notes | Free-text notes field for any extra detail about the unit. |
Edit (pencil icon) | Reopens the form pre-filled to update any field or advance status. |
Delete (trash icon) | Permanently removes the record after a confirmation prompt — there is no undo. |
Tips & Best Practices
- Log the Floor Location for every unit — with several demo phones on a counter it is the fastest way for a new staff member to find "the display S24".
- Update Current Value periodically rather than only at write-off time, so the orange depreciation flag stays meaningful for anyone reviewing the list.
- Move a unit to Retired instead of deleting it if you want to keep a historical record of what was once on display.
Troubleshooting & FAQ
I can't find the Status dropdown when adding a new demo unit.
Why is the Current Value showing in orange?
Does marking a unit "Sold" here create an actual sale in Billing?
Can I link a demo unit to a real Product record?
🧑💻 Developer Notes
Source component(s):
frontend-app/pos-app-electronics/src/pages/electronics/DemoUnitPage.jsxfrontend-app/packages/pos-react-lib/src/pages/electronics/DemoUnitPage.jsx (actual implementation)
Backend endpoints used:
GET /electronics/demo-unitsPOST /electronics/demo-unitsPUT /electronics/demo-units/:idDELETE /electronics/demo-units/:id
Related tables (db-core repositories):
ElectronicsDemoUnit
Feature flag key: billing
The pos-app-electronics file is a one-line re-export (`export { default } from 'pos-react-lib/src/pages/electronics/DemoUnitPage'`) — the real component lives in the shared pos-react-lib package (also usable by the mobile-shop variant). New records are always created with status ON_DISPLAY since the create-mode form has no status field; the Status select only appears when `item?.id` is truthy (edit mode). Mounted at `/electronics/demo-units` behind `