Skip to main content

Traditional Point of Sale · Retail

Trade Counter

Fast, keyboard-driven register built for lumber and building supply yards.

Trade Counter
Price
Free
Version
v1.8.4
Published
Updated
Maker
FinalFinal

Screens

5 screens

About 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

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

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

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

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

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