/
Free Consultation
All articles
Industry4 min read

Odoo 20 POS: What Changes for Restaurants and Retail

Odoo 20 rebuilt how POS sessions close, added QRIS for self-order kiosks and course-by-course service. What it means for F&B and retail operators.

By Tim Keyklik

This is part 2 of our Odoo 20 series. Point of Sale is one of the areas that changed most between Odoo 19 and Odoo 20, and the changes reach beyond the cashier screen into how the finance team sees the day's takings. If you run restaurants, cafés, a central kitchen or retail stores, this part is for you.

Closing a session now produces ordinary invoices

In Odoo 19, closing a POS session rolled the whole day into one combined journal entry. It balanced, but it was hard to read. An accountant who wanted to know what was behind a number had to unpick a single large entry.

In Odoo 20, closing a session produces:

  • one customer invoice-style receipt for all of the session's sales,
  • one credit note for its refunds, and
  • one payment line per payment method (cash, card, QRIS and so on), each matched against the receipt.

The practical effect: POS revenue looks like any other sales. Finance can review, reconcile and audit it with the same screens and habits they already use for invoices. Matching what each payment method collected against what the bank or payment provider actually paid out becomes more direct.

A few things are gone with the old method, including the "force close" option and some of the old cash-register fields. Cashiers and supervisors who are used to the Odoo 19 closing routine will need a short walk-through.

If you feed sales into Odoo from outside, for example orders from food delivery platforms or from another POS system, the logic that books those sales at closing needs to be reviewed. It was built for the old way of closing and will not carry over automatically.

POS no longer requires the full Inventory setup

In Odoo 20, the core POS app no longer depends on Inventory and stock valuation. Stock handling moved into a separate link module that is installed automatically when both POS and Inventory are present.

  • Shops and restaurants that track stock keep working as before, because the link installs itself.
  • Businesses that sell services or simple items at a counter can run POS with a lighter setup.

Built for restaurants

  • Courses. Orders can be organised by course (starters, mains, dessert), so the kitchen fires dishes in the right order instead of all at once.
  • Kitchen and preparation display now sits in the core POS app instead of a separate Enterprise add-on. Check with your partner which screens your edition shows.
  • Self-ordering has more channels: from the customer's own phone, via SMS, and at events.
  • QRIS on self-order kiosks. A new Indonesian module lets self-order kiosks accept QRIS payments, so customers can order and pay at the kiosk without queuing at the cashier.

Built for retail and sales teams

  • Sales commission can be calculated from POS sales.
  • Delivery from a POS sale: goods sold at the counter can be scheduled for delivery.
  • Staff planning connects to POS.
  • Customer autocomplete speeds up entering customer details at checkout.
  • An Android POS app is available.

Hardware: fewer boxes in between

Odoo 20 replaces the old IoT Box software with a new family of device modules, with Android variants for POS. Two additions are useful in stores:

  • Some serial devices, such as scales, can connect straight from the browser, with no IoT box in between.
  • Printers (common receipt and label printers) and electronic shelf labels have their own general modules. Shelf labels are no longer a POS-only feature, so prices can be managed together with the rest of the product data.

What to check before you upgrade your POS

  1. Closing routine. Walk cashiers and supervisors through the new closing flow, and show finance what the new closing documents look like.
  2. Custom closing rules. If you customised how POS dates or cash rounding are booked, have those customisations reviewed. In one migration we worked on, such customisations no longer ran at all in Odoo 20, without any error message. More on that in part 7.
  3. External feeds. Delivery platforms, marketplaces or another POS sending sales into Odoo need their closing logic rebuilt.
  4. Payment methods. Confirm each payment method (cash, EDC card, QRIS) maps to the right journal, because each one now gets its own settlement line.
  5. Hardware. List your printers, scales and kiosks and confirm how each connects in Odoo 20.

Running outlets on Odoo and planning the move? See our services or contact the Keyklik team.

The Odoo 20 series

  1. What's New for Your Business
  2. Point of Sale for Restaurants and Retail (this article)
  3. Inventory and Manufacturing
  4. Accounting and Purchasing
  5. HR and Attendance
  6. AI Agents and MCP
  7. Planning the Upgrade

Note (DYOR — Do Your Own Research): This article is based on our own comparison of the Odoo 19 and Odoo 20 source code, not on Odoo's official release notes. Feature availability can differ by edition and configuration. The way POS revenue is booked affects your financial statements and your tax reporting (including VAT and e-Faktur/Coretax). Verify against the official Odoo documentation and DJP sources, and consult your accountant, tax advisor and implementation partner before changing how you close POS sessions.

#odoo#odoo-20#point-of-sale#restaurant#retail#qris

Ready to start your digital transformation?

Talk to our team about your Odoo, ERP, or business integration needs.