Guides & articles

Getting started with Odoo Point of Sale for an Australian business

Odoo's Point of Sale app runs in a browser tab, keeps selling when the internet drops, and posts straight into the same database as your stock and accounting. It's included in Odoo Community, so there's no per-till licence and no upgrade gate for the basics. Below is the order I'd set things up in for an Australian shop, café or market stall, plus the parts of the free edition that genuinely don't do what people expect.

Do the accounting groundwork before you touch POS

POS sessions post journal entries when you close them. If your tax setup is wrong on day one, you'll be fixing entries later, so get this out of the way first.

Set up 5c cash rounding

This is the step most overseas guides skip. Australia has no 1c or 2c coins, so the convention is that cash totals round to the nearest 5c while card payments are charged to the cent. Odoo handles this, but you have to switch it on in two places:

Confirm the rounding account and strategy with your bookkeeper before you go live, because every cent of the difference lands in whatever account you nominate.

Products and categories

On each product, the Point of Sale tab has an Available in POS checkbox — nothing appears on the till screen without it. Set Product Type to Goods with "Track Inventory" on if you want stock to move on every sale; leave it as a service or consumable for things like a corkage fee. Fill the Barcode field so a cheap USB scanner (which behaves like a keyboard) just works. Then build POS Product Categories — these are separate from the internal product categories and drive the button layout on the till, so keep them shallow: Coffee, Food, Retail, Gift Cards.

Payment methods and the EFTPOS reality

Under Point of Sale → Configuration → Payment Methods, you'll have a Cash method tied to a cash journal (that's your drawer, with opening float and closing count) and you add a bank-journal method for card.

Before you buy hardware, understand how Odoo talks to terminals. The IoT Box — Odoo's hardware bridge for pushing amounts to a terminal and driving printers and scales — is an Enterprise product and is not part of what we host. Direct terminal connectors for providers like Adyen, Stripe and Viva have moved between the Community and Enterprise addon lists across Odoo versions, so don't take anyone's word for it: open Apps on your own instance, clear the filter and search "pos" to see exactly what's installable on the version you're running. On a demo build that takes two minutes.

The setup that works regardless: key the amount into your standalone EFTPOS terminal, tap the matching amount on the card payment button in Odoo, and the two agree because the cashier read the same number twice. Plenty of Australian shops run this way. It just means no automatic push of the amount to the terminal, and no automatic reconciliation of the tender. We'd rather say that up front than let you find out at go-live — see Community vs Enterprise for the wider split.

Receipts print through the browser print dialog to a printer installed on that machine. If you want the drawer to pop open on sale, you need a cash drawer plugged into the receipt printer (the socket is usually called a kick port) and a printer model that triggers it on print — check your specific model's documentation, and test it on the actual hardware during setup rather than on go-live morning.

Running a session, and what it does to your books

Open the till, enter the opening float, sell, then close the session and count the drawer. Odoo shows the variance between counted cash and expected cash, and posting the session creates the journal entry: revenue by tax, GST collected, cash to the POS cash account, card takings to the bank journal. Two Australian habits worth building:

BAS and the honest limits

At quarter end, Accounting → Reporting → Tax Report gives you GST on sales and GST on purchases for the period, which maps to G1 and 1A/1B on your BAS. Odoo Community will not lodge your BAS. There's no electronic lodgement to the ATO and no Single Touch Payroll in the free edition — you read the figures off the tax report and key them into ATO Online services for business, or hand them to your accountant or registered BAS agent. You can also keep Xero or MYOB as the lodging ledger and push a daily sales summary across from Odoo, running POS and stock in Odoo while the compliance side stays where it is.

Practical notes on running it

POS loads products into the browser at session start and keeps trading if the connection drops, syncing when it returns — but don't close that tab while offline, or unsynced orders go with it. Cashiers don't need to be Odoo users: the POS employee feature lets staff log into the till with a PIN against their HR record, which matters for casuals on a weekend roster. And decide early whether a till session closes daily or spans a trading day across midnight, because your daily sales reporting follows the session, not the calendar.

What it costs to run this with us

Per-user licensing isn't a pressure point here, because ERPForge pricing is flat AUD +GST — $29/month up to 5 users or $79/month up to 15 users, never per user, with every Community app included on both plans. Hosting runs on AWS in Sydney (ap-southeast-2), so your data stays in Australia and the till talks to a server in the same country. SSL is included and nightly backups are kept for 7 days. More detail at Odoo hosting in Australia.

To try it against your own product list, the homepage chat builds a live demo instance in about five minutes. If you need something POS doesn't do out of the box — a loyalty rule, a specific receipt layout, an integration with your EFTPOS provider's API — that's custom development, quoted fixed-price with the scope agreed in writing before anyone starts. Start a scope here, or browse more guides in Learn.

See your Odoo running in five minutes. No card, no sales call — a chat, a verified email, and a live instance.

Start the demo →