Odoo POS · intermediate · 9 min read
Integrating POS with Inventory
Connect Odoo POS to inventory truth: stock locations, real-time deduction, picking policies, replenishment, omnichannel ATP, and avoiding oversell across stores and ecommerce.
Last reviewed 2026-07-30 · Estimated effort: 2–6 weeks typical implementation slice
Table of contents
POS inventory integration ties each store register to a warehouse or stock location so confirmed sales create stock moves that reduce on-hand quantity in Odoo — the same records Sales and ecommerce channels read for availability.
Design choices include real-time deduction at payment versus picking from a store stock operation, how returns restock, and whether ship-from-store or DC fulfillment shares one ATP pool.
Logistics covers replenishment and barcode accuracy. Shopify and Retail guides cover channel-specific allocation rules. Offline POS adds sync constraints covered in the offline article.
Overselling online while shelves still show stock is a common failure when POS runs disconnected from inventory. Customers and finance both lose trust when ATP numbers disagree with what cashiers can actually sell.
This article explains how to wire POS to inventory locations and stock policies. Read barcode and offline articles for execution detail on scanning and disconnected registers.
Each POS configuration should reference the warehouse or location where that store sells from — typically a shop floor or backroom bin under a store warehouse record.
Multi-store chains with shared DC fulfillment need explicit rules: does POS deduct store stock only, or can it sell from central pool with routing? Ambiguity here causes ecommerce oversell.
- ▸One warehouse per store versus shared regional pool
- ▸Shop floor versus backroom sub-locations
- ▸Negative stock policy: allowed or blocked at POS
- ▸Product availability flags per POS config
Odoo can update inventory when the order is paid, when it is validated, or through a picking step depending on settings and version behavior. Align timing with how quickly ecommerce must see reduced ATP.
Returns should increment the correct location — damaged goods may route to scrap or quarantine rather than sellable shop stock.
Store sales deplete local quants. Replenishment rules, internal transfers from DC, or vendor direct-to-store flows must keep registers stocked without manual spreadsheet counts.
Cross-link Logistics for pick-pack-ship and barcode receiving that feeds store backrooms.
When Shopify or other ecommerce channels share catalog, define whether online orders reserve stock globally or per location. POS sales at Store A should not silently consume stock promised to an online buyer at Store B unless rules allow.
Retail pillar articles cover promotion and pricing consistency; this article focuses on quant movement.
- ✓Map every store to a warehouse location before enabling POS sales.
- ✓Test a sale and return cycle and verify quant changes in Inventory.
- ✓Align stock move timing with ecommerce ATP expectations.
- ✓Define replenishment triggers before peak season depletes shop floor.
- ✓Cross-link Shopify when online and store share one catalog.
- ✓Reconcile POS session reports with inventory adjustments weekly during rollout.
- !Selling products at POS without storable flag or stock tracking enabled.
- !Using one global stock location for all stores without transfer discipline.
- !Allowing negative stock at POS while ecommerce blocks oversell.
- !Ignoring return restock paths for damaged versus resellable goods.
- !Manual inventory counts that never reconcile with POS session totals.
- !Enabling ship-from-store without testing allocation conflicts.
POS inventory integration is the foundation of honest ATP across stores and channels — every sale and return must touch the right location.
Next, validate location mapping with test transactions before connecting ecommerce or replenishment automation.
Stock move
Receipt, sale, or transfer.
Update quants
Odoo inventory truth.
Publish ATP
Channels receive availability.
Exception
Oversell / conflict handling.
Open store
Hardware and cash float.
Trade
Sales and exceptions.
Replenish
Backroom to floor.
Close
Counts and reports.
Frequently asked questions
Does POS update inventory in real time?
When configured with stock locations and storable products, POS sales create stock moves on confirmation. Offline mode batches updates until reconnect — see the offline article.
Can one product sell from multiple store locations?
Each POS config points to its location. Cross-store sales require transfers or shared pool rules defined in architecture, not ad hoc cashier workarounds.
How do returns affect inventory?
Configure return operations to restock sellable quantity or route to scrap. Cashiers should follow one return playbook so quants stay accurate.
Should ecommerce and POS share one warehouse?
They share product masters; location strategy varies. Many retailers use per-store warehouses plus a DC with explicit fulfillment rules.
Related articles
What Is Odoo POS?
A practical definition of Odoo Point of Sale for retail operations: sessions, orders, payments, inventory updates, multi-store design, and how POS connects to ecommerce and warehouse execution.
View →Barcode and Scanner Best Practices for Odoo POS
Implement barcode scanning at the register: product barcodes, weighted items, scanner modes, label strategy, speed at checkout, and alignment with warehouse barcode operations.
View →Offline POS Operations
Plan Odoo POS offline mode: when disconnects happen, local order buffering, sync behavior, inventory accuracy risks, fiscal constraints, and operational playbooks for store continuity.
View →POS Reporting and KPIs
Measure Odoo POS performance: session reports, sales by store, basket metrics, payment mix, shrink indicators, identified customer rate, and dashboards for retail leadership.
View →Unifying store and channel inventory in Odoo?
Share your store and DC layout — we will outline location and ATP rules that prevent oversell.
