RetailOSRetailOS · POS Manual

RetailOS — Point of Sale (POS) Manual

A hands-on guide to running the till: setting up registers, opening and closing cash sessions, selling, taking payment, reprinting receipts, handling returns, and working offline.

Base URL: https://goretailos.com POS terminal: /admin/pos · Registers & cash: /admin/registers · Orders & returns: /admin/orders · Offline sync: /admin/sync This is the POS-focused companion to the full User Manual and the Usage Guide.

1. Who can use the POS, and what a register is

Tip — install it as an app. The POS runs as a Progressive Web App: on the till device open /admin, then Install (Chrome/Edge address bar) or Add to Home Screen (iPad Safari). It launches full-screen like a native terminal and keeps working through Wi-Fi drops. See the Usage Guide → Installing the POS for the full setup.

2. Opening the register (start of shift)

You must open a cash session before you can complete a sale. The session tracks every cash movement from open to close so the drawer can be reconciled.

  1. Open the terminal at /admin/pos.
  2. In the session bar at the top, pick your register.
  3. Enter the opening float — the cash you're starting the drawer with (count it first).
  4. Select Open session.

Rules:


3. Selling — the terminal

The terminal is a full-screen workspace: catalog on the left, cart on the right (a slide-in sheet on phones).

Finding items

The cart

Keyboard shortcuts

KeyAction
F2Focus search
F4Attach / change customer
F6Apply a discount
F8Hold the current sale
F9Open the payment screen
EscCancel / close the current panel
Prices and tax shown on screen are an estimate — the server always recalculates the authoritative total when the sale is completed.

Customer-facing display (second screen)

Show the customer the bill as it's built. In the POS toolbar select Display — a full-screen customer display window opens; drag it onto a second monitor or customer-facing screen at the counter.

It's a read-only mirror — it never changes the sale. It runs on the same device/browser as the till (open it from the POS on that machine), works offline, and shows nothing to anyone who opens the page on a different device.


4. Taking payment

  1. Press F9 (or Pay) to open the payment sheet. It shows the Total due.
  2. Pick a payment method tile (Cash, Card, Bank, etc.).
  3. For split payments, use Split payment to add more rows — the sheet shows Allocated, Remaining and Change due live.
  4. Press Complete sale. The button shows Processing… while the sale posts, and can't be double-clicked.

Payment rules:

On success you get the receipt screen (and, if offline, a "Saved offline" confirmation).


5. Receipts


6. Cash in / cash out during the shift

Money sometimes moves in or out of the drawer outside of sales — a float top-up, a payout, or a cash expense. Record these so the drawer still reconciles at close.

From Registers & Cash → the open session panel:

TypeUse it for
Cash inAdding cash to the drawer (e.g. a float top-up).
Cash outRemoving cash (e.g. a payout, banking).
ExpenseA cash purchase — also posts to the ledger under the chosen expense category.

Each movement takes an amount and an optional note. Only the session's opener or a manager can record movements.


7. Closing the register (end of shift)

  1. Go to the session (POS session bar Close session, or Registers & Cash).
  2. Count the drawer and enter the Counted cash — this is required; you can't close with a blank amount (type 0 if the drawer is genuinely empty).
  3. Close. The system computes the variance.

Expected cash is calculated as:

opening float
  + cash sales
  − cash refunds
  + cash in
  − cash out
  − cash expenses

The close screen shows the full reconciliation — Opening, Cash sales, Refunds, Cash in, Cash out, Expenses, Expected, Counted, and the Difference. Only the opener or a manager can close. A discrepancy raises an alert for a manager to review (flagged critical if it's more than ~5% of expected).


8. Recent sales, the order ledger & reprints


9. Returns & refunds

Returns are processed from the order, not the till screen.

  1. Open the order in Orders, returns & payments.
  2. Choose Full return & refund.

What happens: the returned items are restocked, a refund is issued (cash refunds re-enter the open drawer), and the sale's revenue/tax/COGS are reversed in the ledger — all in one step.

You can't refund an order that was never paid. For an unpaid order (e.g. a Cash-on-Delivery online order that wasn't collected) the refund option is hidden and the server blocks it — there's no money to give back. Cancel such an order instead.

10. Offline mode & sync

The POS is offline-first: if Wi-Fi drops (or a checkout call fails), it keeps selling.


11. Troubleshooting

ProblemWhat to do
Register not in the listAsk a manager to create it and assign you to it in Registers & Cash.
"Register already has an open session"Someone else opened it — close that session first, or use a different register.
Can't complete a sale — payment doesn't matchThe total tendered must cover the order total. Over-tendering cash is fine (you'll see change); a card/bank amount can't exceed the total.
Close button won't workEnter the Counted cash amount first — it's required (use 0 for an empty drawer).
Nothing loads offlineYou never primed the cache online, or you're in a browser tab instead of the installed app. Reconnect, open the installed app, load the POS once, then retry.
A sale is stuck "syncing" / rejectedA manager resolves it in the Offline Sync console.
Refund option missing on an orderThe order was never paid — there's nothing to refund; cancel it instead.

This page renders POS_MANUAL.md. See also the full User Manual and the Usage Guide.