How receipts connect
Receipts touch almost everything else in the app. Every link is optional: the module works on its own, and each other module or setting lights up an extra capability when it is present.
| You have | Receipts gain |
|---|---|
| Receipts alone | Free-typed customer names and free-typed line items, custom fields, signatures, printing, offline issuing. Everything on this page's Locations and Users rows too, because those are platform features. |
| + Customers | A customer search on the New Receipt screen, "Create as New Customer", and the Sales by Customer report. |
| + Products | A product search that adds catalogue lines — name, price and unit locked for a product priced per unit, an amount box for one priced on the receipt — and the Sales by Product report. |
| + Inventory | Nothing on the receipt itself. Stock is a manual ledger; see below. |
Locations
Locations are a platform feature every organisation has. Their link to receipts is switched on under Receipt settings → Locations.
- Which locations are offered: the ones assigned to the issuing person under Users. The owner is offered every active location. A single option is selected automatically; the default location is marked "· default" but is not forced.
- What is recorded: the location's name and its address lines (the free-text address if set, otherwise the structured fields) are snapshotted onto the receipt and print directly under the logo or label. Renaming or deleting the location later never changes the receipt.
- Currency: if the location has its own currency, receipts issued there are recorded in it; otherwise the organisation's applies. Product prices are not converted.
- Products: with the Products module, the receipt's location decides each product's price, unit, pricing and availability through the product's location overrides, falling back to the global values. See How products connect.
- Enforcement: the server refuses a location while selection is disabled, insists on one when required, and only accepts one of the issuer's own. Offline receipts that break a rule are accepted with a note instead.
- Reports: Sales by Location groups receipts by the snapshotted name; receipts with no location group under "No location".
Customers
- With the module: the Customer box searches by name, phone and email and lists up to eight matches. Searching from the receipt needs only
Receipts.Create; a cashier withoutCustomers.Viewcan still find a customer for a receipt but cannot open the Customers module. Filing a new customer from the receipt needsCustomers.Createand a connection. - Without the module: the box is a plain, optional name field. What you type prints; nothing is stored beyond the receipt.
- What is recorded: the name as it read at issue, plus a link to the customer record when one was picked. Editing or deleting the customer later never changes the receipt. The link is followed from both ends: the receipt screen shows an arrow beside the Customer (with
Customers.View) that opens the record, and the customer page's Related Records card lists the receipts linked to them. - Reports: Sales by Customer groups receipts by the linked customer; every receipt without a link, whatever name was typed, is grouped as "Unknown Customer".
More in How customers connect.
Products
- With the module: the Items card gains a product search. Only products available at the receipt's location (or active globally, without one) are offered, at that location's price and unit. A catalogue line takes the product's current name. Priced per unit, its price and unit are locked and only the quantity is editable; priced at a custom price, the amount is typed and the quantity is 1 (and, when the product works units out from the amount, the units it buys show under the name and are recorded); a product that allows both offers a toggle, starting in its default. Picking a product for a receipt needs only
Receipts.Create, notProducts.View. - Without the module: every line is typed by hand with its own description and price. Lines then have no unit label.
- What is recorded: description, unit price, unit label, line total and how the line was priced (per unit or a custom amount), plus a link to the product when one was picked; a custom-priced line whose product works units out from the amount also records the units (three decimals) and the price per unit they were worked out at. Deleting or repricing the product never changes the receipt. Online, the server re-reads the catalogue for per-unit lines when issuing so the price is always current, and keeps the typed amount of a custom-priced line; offline, the price actually charged is kept and any difference is noted on sync.
- Reports: Sales by Product groups catalogue lines by product (showing the product's current name) and free-typed lines by their description. Custom-priced lines count in revenue and in their own column, not in units sold — unless their units were worked out from the amount, when those units join Units Sold.
- Related Records: the product page's Related Records card lists the receipts with a line taken from that product (needs
Receipts.View).
More in How products connect.
Inventory
More in How inventory connects.
Users, roles and PINs
- Who did what: each receipt records who issued it, each print records who printed it, and the issuer's signature is labelled with the signed-in person's name.
- Locations: a person's assigned locations are the ones they can issue at (see Locations above).
- Permissions:
Receipts.VieworReceipts.View.Ownto see receipts,Receipts.Createto issue,Receipts.Reprintfor duplicates,Receipts.DeleteorReceipts.Delete.Ownto delete,Receipts.Configurefor settings. A person with only the "mine" flavour of View or Delete sees, reprints or deletes only the receipts they issued. - PIN sign-in is how counter staff get into the app on a shared device (Tenant ID once per device, then PIN). It is not a per-action prompt: there is no PIN challenge for a reprint in this release; the signed-in person's permissions decide.
Reporting
Receipts feed the Receipts Register, Daily Sales Summary and Sales by Location reports directly, and supply the sales figures behind Sales by Customer and Sales by Product. A deleted receipt is left out of all of them. Running any of them needs Reports.View plus the plain Receipts.View (a person with only Receipts.View.Own is offered no receipt report). See the Report catalogue.
Currency and time zones
- The receipt's currency is snapshotted at issue (location's own, else the organisation's), which is why the organisation cannot switch to a currency with different decimal places once receipts exist.
- The issue time is stored in UTC and shown in the reader's own time zone, or the organisation's if they have none. The Daily Sales Summary buckets receipts into days in the reader's zone.
Audit
Issuing a receipt, every print and reprint, and every change to receipt settings, branding and custom fields is written to the organisation's append-only audit log. The log is not yet shown in the app; see Current limitations.