Traditional Point of Sale · Retail
Trade Counter
Fast, keyboard-driven register built for lumber and building supply yards.
- Price
- Free
- Version
- v1.8.4
- Published
- Updated
- Maker
Final
Screens
5 screensAbout this flow
Designed for building supply, lumber, and trade counters, Trade Counter provides a high-density, keyboard-first register tailored for contractor workflows. It handles unit-based selling, fractional quantities, separate customer pricing, and distinct fulfillment and payment lifecycles while rendering customer invoices and yard pick tickets from a single shared order model.
What it can do
- Keyboard-First Entry
- Single omnibox automatically classifies barcodes, SKUs, and text descriptions with arrow key fall-through to navigate lines.
- Unit & Fractional Quantities
- Enforces variant-specific unit precisions like linear feet or board feet and verifies quantities before adding to the cart.
- Dual-Axis Ticket Lifecycle
- Tracks payment and fulfillment as separate operational states to cleanly handle will-call staging and yard pickups.
- Invoices and Yard Pick Tickets
- Generates contractor invoices with pricing alongside price-free yard pick tickets from the same document data.
- Integrated Explain Mode
- Contextual help docks on the side and updates as users tab or hover over trade-specific controls.
Changelog
- v1.8.4Live
R-SMALL + R-UNIT. - Quotes: a lapsed quote brought back rings at today's prices and says so; a quote is marked converted once its lines are confirmed on the ticket, with a report of any line that did not carry over; saves need the host to confirm success. - Customers: editing contact details sends only the fields changed; "Nothing changed." when nothing was. - Measured items: a scan of an item sold by length, area, weight or volume waits for the quantity; the field is labelled by unit (e.g. "Length (lin ft)"). Matched on the platform's built-in unit families only. - Cuts: "pieces @ length" (e.g. 3@20) adds one new line with its tally as the line note; the tally shows on the ticket, print, and saved quotes. Oversized cuts are refused; the host's own refusal or a merged line is reported.
- v1.8.3
R3: stock figures are re-read from the till when the Catalogue pane or the entry row shows an item, and on the documented products topic; a failed read says so in the till's words. A failed cart read keeps the ticket on screen with a warning instead of blanking the register; saving a quote, bringing one back, resuming and parking now check the till first.
- v1.8.2
R-RAIL: the left sidebar now runs the full height of every page, with the page buttons at the top and the station-home exit pinned to the bottom as a door icon. If the till refuses to open station home, a dialog says so in the till's own words. The Catalogue page no longer scrolls its sidebar off-screen.
- v1.8.1
R1c: a refused park now shows the till's words ("Order not parked — parkOrder failed: …"), and a park is only reported once the register reads back empty. The host's own barcode listener is switched off for this flow, so a scan with nothing focused no longer rings past the flow's checks. R-UX: an empty sale reads "Ready for the next sale."; the whole customer bar is one button that reads "Guest" when nobody is attached; the bar and F11 now open the Customers page, where "Add to sale" puts the customer on the sale and goes straight back to the Register; the customer slide-out is removed. Neither round was independently reviewed (shipped as is, 2026-09-25).
- v1.8.0
Phase 8: list pages open on their top result. R1: scans ring at once and can't land in number fields; short cash is refused and a deposit is offered instead. R2: Orders and Resume ask the till first; saving a quote clears the ticket, and is refused if money was taken. R1b: card payments wait on the till; a payment still outstanding blocks changes to the order; add-to-ticket reads the till's cart.
