Skip to content

Offline

This module solves one problem: trading when there is no connection. An ordinary till goes to the server for every action — for the balance, the price, the discount. An autonomous till cannot: the internet in a village shop is gone and the queue is still there.

The answer is to split the roles. The terminal keeps a local copy of the reference data and issues receipts on its own; the server, once connectivity returns, collects those receipts and turns them into full invoices with stock movements and postings. The till keeps no books — it records the fact of a sale, and the accounting happens on the server.

The route: from an offline receipt to a document

Offline sync settings (the shared rules of exchange)
        ↓
Offline terminal (the workplace) + offline number series (its own receipt range)
        ↓
Trading without a connection: a receipt = items, quantity, price, cash
        ↓
Synchronisation: ← reference data to the till   ·   receipts to the server →
        ↓
Offline sales → invoices: stock, postings, revenue
        ↓
Offline sync log: when, which terminal, how many records
  1. Offline sync settings — what the server substitutes into receipts that lack something: the default customer and payment terms. The till does not take the server address, interval or timeout from here at present — they are set in the till application's configuration.
  2. Offline terminal — the card of an autonomous workplace.
  3. Offline number series — the terminal's own range of receipt numbers, so it never collides with the server or the neighbouring tills.
  4. Offline sales — the log of receipts that arrived from the tills. The server builds the accounting documents from them.
  5. Offline sync log — the record of exchanges: when, which terminal, which register, which direction and how many records.

What is worth understanding

A receipt from the till moves nothing. Neither stock nor the ledger — it is simply the fact of a sale. Everything else is done by the server during synchronisation. So "the sales are on the till but not in the reports" almost always means the exchange did not happen, not that a receipt was lost.

A receipt number is not a shared counter but a range. Every terminal gets its own, and nobody else works inside it. That is the only way to number documents without a connection and avoid two receipts with the same number.

The sync log is the first place to look. It shows whether an exchange happened at all, in which direction, and how many records went through. The server writes it; nobody types into it.

Reference data travels to the till, receipts travel to the server. The exchange is two-way: what the till receives and what it sends is set on the "Sync Registers" tab of the terminal card. Typically items and contacts go to the till and sales go to the server; the server makes invoices only from offline sales.

The exchange is switched on at the server, not in the interface. Until offline sync is enabled in the server configuration (OFFLINE_SYNC_ENABLED), the till cannot reach the server — every exchange request gets 404, and no receipt arrives, even though the module's menu items are all there.

The offline till is a separate application, not a mode of the till screen. The till computer runs the ERPJS offline client with its own database, and a sale is entered as an offline sale record — without the POS buttons and shifts and without fiscalisation. The module adds autonomy and the rules of exchange.

Where to start in a new database

  1. Offline sync settings — the default customer and payment terms.
  2. Offline terminals — one card per autonomous workplace.
  3. Offline number series — a range per terminal, with room to spare.
  4. Connect the till and check the first exchange in the log.

Common tasks

You need Where to go
add an autonomous till Offline terminals
give a till its receipt numbers Offline number series
review the sales of autonomous tills Offline sales
find out why sales did not arrive Offline sync log
change the rules of exchange Offline sync settings

Everything in the module

Documents: offline sales

References: offline terminals · offline number series

Logs: offline sync log

Settings: offline sync settings

Where to look next