Odoo POS is built offline-first — orders, payments and refunds keep working on a dead connection and sync the moment it’s back. Add barcode scanners, receipt printers, cash drawers, loyalty rules and multi-till cash management, and it holds up on a shop floor as well as it does in a demo. The part that actually needs an integrator: making session close-outs reconcile cleanly into accounting, every single day.
POS orders write straight to the same database as your inventory, invoicing and accounting — no export/import, no nightly batch job pretending to be real-time.
The POS runs as a local web app on the till itself. Wi-Fi drops, orders keep getting rung up and queued, then sync to the server the second connectivity returns — no lost sales, no frozen screen.
Barcode scanners, receipt/kitchen printers, cash drawers, weighing scales and card payment terminals connect via IoT Box or direct USB/Bluetooth on supported devices. Odoo maintains the driver layer; we handle the peripherals that aren’t on the default list.
Point-based loyalty programs, coupon codes and gift cards ship as configurable modules — earn rates, redemption rules and expiry are all set from the backend, no code required for the standard cases.
Each register opens its own session with its own opening float. Multiple cashiers, multiple tills, one store — or ten stores — all report into the same Point of Sale dashboard.
Every sale decrements stock immediately (or on session close, depending on config). Combined with Odoo Inventory, a sale on till 3 is visible to the warehouse and your e-commerce channel within the same transaction.
Every session closes with an expected-vs-counted cash reconciliation, and the difference posts as a documented over/short — the mechanism exists natively, but getting it to actually match your accounting workflow is the part most installs skip.
Odoo’s official hardware list is a starting point, not a ceiling. Regional peripherals — especially in India — often need an IoT Box driver written or a serial/ESC-POS bridge configured.
If your peripheral isn’t on Odoo’s default hardware list, we’ve most likely already written the bridge for something similar — ask us before assuming it can’t be done.
GSTIN, FSSAI number, return policy, QR codes, loyalty balance printed on the slip — whatever your compliance and branding needs demand, built into the receipt XML.
Beyond the default points-per-rupee: tiered rewards, category-specific multipliers, birthday bonuses, referral credit — coded as server actions when the backend UI can’t express the rule.
IoT Box drivers for peripherals not on Odoo’s default list — common with Indian thermal printers and UPI terminals that speak a non-standard protocol.
Automated matching of POS session close-outs against the accounting entries they should generate, with exceptions surfaced instead of silently accepted.
Real-time stock visibility across physical stores and online channels, so a sale on the shop floor doesn’t oversell the same SKU online an hour later.
Correct GST/HSN or VAT rates mapped at the product-category level instead of one blanket rate — done once, applied automatically at every till.
The scenario below is a representative pattern we design for — not a specific client engagement.
A multi-store retailer runs Odoo POS across five locations. Each night, someone in accounts manually cross-checks till close-outs against the day’s bank deposit — an hour of spreadsheet work per store, every day, with errors that surface weeks later.
The fix isn’t a new app. It’s configuring session close to auto-post to the correct ledger accounts, flag any cash discrepancy above a threshold, and email a daily reconciliation summary. The manual hour disappears; the errors get caught the same day instead of at month-end.
Tell us your store count, till count and what’s currently a manual step at close-out. We’ll scope a fixed-price configuration — hardware, tax, loyalty and reconciliation included.