How products connect
Products feed receipts, are the thing inventory tracks, and drive two reports. Each link is optional.
Receipts
| Products licensed | Products not licensed |
|---|---|
| The Items card on New Receipt has a product search. Tapping a match adds a catalogue line with the product's name locked. Priced per unit, its price and unit are locked too; only the quantity is editable, and tapping the same product again adds to it. Priced at a custom price, the line has an Amount box instead of a quantity (the quantity is 1, no unit prints); when the product works units out from the amount, the units the typed amount buys read under the name as you type ("≈ 4.545 gal at 1,100 / gal") and are recorded with the line. A product that allows both starts in its default with a Per unit / Custom Price toggle. Custom lines (typed by hand, no product) can be switched off under Receipt settings → Custom Lines, so every line comes from the catalogue. | Every line is a custom line: description, quantity and unit price typed by hand, with no unit label. |
| Only active products are offered. | |
| Sales by Product groups lines by product. | The two product reports are not offered. |
- Snapshot rule. The receipt line stores the description, unit price, unit label, line total and how it was priced (per unit or a custom amount) — and, for a custom-priced line whose product works units out from the amount, the units it bought and the price per unit they were worked out at. Repricing, renaming, re-pricing-mode, deactivating or deleting the product never changes an issued receipt, including the units it recorded.
- Catalogue is authoritative online. When a receipt is issued online the server re-reads each per-unit product line's current name and price, so a stale screen cannot undercharge. A custom-priced line is the amount typed; the server keeps it and checks only that the product allows custom pricing. A line asking for a pricing the product does not allow is rejected ("… is sold per unit only.").
- Offline. The device uses the prices and pricing in its snapshot. When the receipt syncs the price the customer actually paid is kept and any difference is recorded as a note ("… was sold at X (catalogue now Y)"). A line priced in a way the product no longer allows, or a product that became unsellable meanwhile, is kept as printed with a note.
- Permissions. Picking products from the receipt needs only
Receipts.Create, notProducts.View. - Related Records. Every product page ends with a Related Records card whose Receipts section lists the receipts with a line taken from this product, newest first, with a count. It follows the link, so free-typed lines that happen to share the name are not included. Seeing it needs the Receipts module and
Receipts.View(a "mine" scope shows only the receipts you issued); tapping a row opens the receipt, in a new tab on the web. - Quantity rule. A per-unit line's quantity is checked against the product's quantity rule as it applies at the receipt's location: a whole number for a Whole Quantity product (the default), or decimals up to the chosen precision for a Fractional Quantity one, so a product sold by the gallon can be sold as 2.5 gal. The line total is quantity times price, rounded half up to the currency's smallest unit. Units worked out from an amount are separate: always three decimals, recorded beside the line's quantity of 1, whatever the rule.
- Location. When the receipt names a location, every product is read through that location's overrides: its price, unit, pricing and availability there, each falling back to the global value. The product search offers what sells at that location, and changing the location re-reads the catalogue lines already on the receipt (a product not sold at the new location comes off with a note). With no location, or selection switched off, the global values apply.
Locations
A location can override a product's pricing, default, units from amount, quantity rule (and its precision), unit, price per unit and availability, each independently; whatever it does not override falls back to the product's global value. Overrides are edited on the product page's Locations card (Managing products) and are read by receipts issued at that location, online and offline (the offline snapshot carries them). Everything else — the Products list, the dashboard, the Price List report — shows the global values. Deleting a location removes its overrides.
Inventory
When both modules are licensed, the Locations card on every product page carries, for each place (organisation-wide and each active location), a tracking switch, the quantity in stock, and Adjust and Record buttons beside that location's overrides. Products are the only thing Inventory can track in this release. Deleting a product leaves its stock records in place under its name. See Tracking and adjusting stock.
Reporting
- Price List: every product with SKU, unit, pricing, current price (blank for a custom-priced product) and whether it is active.
- Sales by Product: units sold (per-unit lines plus units worked out from custom-priced amounts), custom-priced lines without units, revenue and receipt count per product for a period, best sellers first. Free-typed receipt lines appear grouped by their description with no SKU.
Both need Reports.View and the plain Products.View.
Dashboard
The Products card shows three products with their unit's name and price ("Custom Price" and no figure for a product priced on the receipt, unless it works units out from the amount, when its rate shows). See The dashboard.
Currency
Prices are in the organisation's currency, set under Organisation. Because a stored price means a different amount under a currency with different decimal places, the organisation cannot switch to such a currency while products exist. A location with its own currency does not convert prices; see Currency and time zones.
Permissions and "mine"
"Mine" means the products this person created. A person with Products.View.Own sees only those in the list, but the receipt product search shows the whole active catalogue, because picking for a receipt is a Receipts permission. See Roles.
Audit
Creating, editing and deleting a product is written to the organisation's audit log with the name and SKU.