Skip to main content
iVentureTeam
Odoo POS & Retail

Odoo Multi Branch Retail: Stock Transfers, POS and Branch Reporting

Run a retail chain on Odoo: model stores as warehouses or branches, set up inter-branch stock transfers, POS per shop and reporting by store.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
November 13, 202613 min read1 view
Odoo Multi Branch Retail: Stock Transfers, POS and Branch Reporting cover

Retail chains rarely struggle in Odoo because a feature is missing. They struggle because store one was set up as a quick pilot and stores two to ten copied its shortcuts. Our Odoo implementation services start with the store model, before any till is configured.

Related service: Odoo for retail — POS, inventory and eCommerce running on one system.

This guide is for owners, operations heads and finance leads who run 2 to 50 stores. It goes deeper than our Odoo ERP for retail overview and covers structure, transfers, POS, reporting, rollout and cost.

What does Odoo multi branch retail look like in one database?

Odoo multi branch retail means every store sells, receives and counts stock in the same database as head office. There is no nightly sync between a till system, a stock system and an accounting package.

Three records carry the whole design:

  • Warehouse: one per store and one for the central stock room. Odoo defines a warehouse as a physical space with an address, including a physical store.
  • Point of sale: one per till or counter, linked to that store's stock, cash journal and staff.
  • Company or branch: the legal and accounting layer that owns the warehouses and tills.

If your main question is linking a webshop to the stores, read our guide to Odoo omnichannel retail. This post stays on the store network itself: stock, tills and numbers by branch.

Branch, company or warehouse: how should you model each store?

Odoo multi branch retail: Warehouse, branch or company?

Model each store as a warehouse by default, as a branch when it needs its own books inside one legal entity, and as a company only when it is a separate legal entity. This is the decision that is hardest to undo later.

QuestionWarehouse per storeBranch per storeCompany per store
Legal statusSame companySubdivision of one companySeparate legal entity
BooksOne set of journalsParent's chart and taxes, own journalsOwn chart, taxes and journals
Tax IDCompany tax IDShared with parent or its ownIts own registration
StockOwn warehouse and stockOwn warehouse and stockOwn warehouse, shared products
ReportsGrouped by warehouse or POSParent alone or with branchesPer company, then consolidation
Odoo planNo multi-company functionsEnables multi-company functionsNeeds multi-company functions

Odoo's documentation describes branches as subdivisions within a company and says independent subsidiaries should be created as companies. It also warns that a parent company cannot be converted into a branch later.

The plan matters too. Odoo states that adding a branch enables multi-company functions, and that enabling multi-company on a Standard plan triggers an upsell to Custom. Decide on branches with that cost in view.

A chain owned by one company can often start with warehouses and tills only. Store sales and margin come from POS reports, while a full profit and loss per store needs branches or analytic accounts. For separate entities, see our Odoo multi company setup guide.

How do you set up Odoo multi store inventory?

Odoo multi store inventory starts with one warehouse per store and one for the central stock room, each with its own stock location. Odoo is clear on this: "Each location, including the central warehouse and each shop, must be configured as its own warehouse."

Some teams try one warehouse with a location per shop. On the Odoo forum, a consultant comparing both options said their client chose separate warehouses because they expected fast growth and more sites.

  1. Turn on the features: enable Storage Locations and Multi-Step Routes in the Inventory settings.
  2. Create the warehouses: one per store plus the central one, each with a short name of up to five characters.
  3. Set the supplier warehouse: on each store warehouse, fill Resupply From with the central warehouse.
  4. Add routes to products: select the "Store: Supply Product from Main" style route on the products each store carries.
  5. Load opening stock: count each store and post an inventory adjustment per warehouse.
  6. Link the tills: point each POS to its own store's stock, as covered in the POS section below.

How do inter-branch stock transfers work in Odoo?

An inter-branch stock transfer in Odoo is a shipment out of one warehouse, a stop in a transit location and a receipt in the other warehouse. It is not the same as an Odoo internal transfer, which only moves goods inside one warehouse.

The Odoo inter-warehouse replenishment guide explains the mechanics. The supplying warehouse ships to a location called Inter-warehouse transit. The store's receipt stays in Waiting until that shipment is validated.

Transfer typeWhen to use itWhat Odoo creates
Automatic resupplyA shop drops below its minimumShipment to transit, then a store receipt
Manual store to storeOne shop covers another's shortageShipment to the other store's address, plus its receipt
Internal transferBack room to shop floor in one storeOne internal transfer inside the warehouse
Inter-company transferStores owned by different legal entitiesShipment in one company, receipt in the other

The receiving store validates what actually arrived, not what was sent, so a shortage shows up as an open difference to investigate. Pair this with the routines in our guide to Odoo inventory accuracy and cycle counts.

How does a central warehouse replenish each shop automatically?

A central warehouse replenishes each shop through reordering rules that use the store's resupply route. When a shop's forecast falls below its minimum, Odoo proposes or creates the transfer for you.

Each rule needs four values: the store's stock location, the resupply route, a minimum and a maximum. The rule triggers when the forecasted quantity drops below the minimum. Planners can also open Inventory, Operations, Replenishment and click Order on a line.

For special orders, the Replenish on Order (MTO) route pulls one item from the central warehouse for one customer sale. Use it for bulky or slow items, and keep min and max rules for fast sellers.

How do you run Odoo POS in multiple shops?

Odoo POS runs in multiple shops by giving each till its own point of sale record, tied to that store's stock, cash and staff. The most common early mistake is tills that all sell from the main warehouse.

One forum user created several tills and a new warehouse, then found that every POS "keep seeing all stock that i had". The fix is the operation type in each POS's Inventory settings, which decides the warehouse its sales reduce.

  • Cash: Odoo advises a dedicated cash payment method and a cash journal for each POS, so entries are traceable to a specific till.
  • Staff: enable Log in with Employees and use the four POS employee access levels: Supervised, Restrictive, Cashier and Manager.
  • Prices: turn on Price Control so only managers change a price at the till, and choose the pricelists available in each store.
  • Network: Odoo POS is built to keep working through temporary network outages, which matters for mall and high-street connections.

Licensing follows people, not tills. Cashiers can work as employees on a register that a full user opened. Our post on the Odoo 20 Light User explains how such staff are counted and billed.

How does consolidated reporting work across Odoo branches?

Consolidated reporting across Odoo branches works because every sale, transfer and journal entry already sits in one database. You group one report by store; you do not merge ten spreadsheets.

QuestionWhere to lookGroup or filter by
Sales by storePoint of Sale, Reporting, OrdersPoint of sale
Who sold whatPOS sessions and their ordersEmployee, session
Stock by storeInventory, Reporting, StockWarehouse, location
Goods on the roadInventory, Reporting, Moves AnalysisTransit location
Cash differencesPOS session closingPoint of sale, session
Profit and lossAccounting reportsParent alone or with branches

Odoo's POS reporting offers graph and pivot views, and each order records its point of sale and employee.

With branches, the parent company sees the reports, invoices and bills of all branches, while each branch sees only its own data. The parent's lock dates apply to every branch, so month end closes once for the whole chain.

What changed for retail chains in Odoo 20?

Odoo 20 improved retail chains mainly in two places: transfers between companies and POS accounting. Our live notes on Odoo 20 Point of Sale changes and Odoo 20 Inventory changes list every item.

Odoo 20 changeWhat it doesWhy a chain cares
Inter-company resupplyResupply From accepts another company's warehouseFranchise or entity stores refill from a group warehouse
Transfer valuationReceiving company takes the sender's costStock values stay correct across entities
POS closing entriesOne global sale per session, entries daily or at closingCleaner books and faster checks
Suggested min and maxLevels proposed from demand historyLess manual tuning per store
POS without InventoryStock logic moved to a bridge moduleCustom POS modules need a review

If you upgrade a running chain, test POS accounting first. Reports and custom code that read the old session entries must be reviewed before the first store opens on Odoo 20.

Which retail sectors gain most from Odoo multi branch retail?

Chains with many items, fast stock turns or strict expiry rules gain most from running every branch on one Odoo retail ERP. The table shows how the same building blocks answer different pressures.

Retail sectorPain or cost driverOdoo approachHow iVentureTeam helps
Fashion and footwearSizes and colors spread unevenly across storesVariants, store to store transfersDesign routes and variant barcodes
Grocery and convenienceExpiry dates and daily replenishmentLots with expiry, min and max rulesSet rules per store and train counts
Electronics and mobileSerial numbers and warranty claimsSerial tracking at POS and on transfersMap serial flows and returns
Furniture and homeBulky items sold from displayMTO resupply from the central warehouseSet special order routes

What does an Odoo retail chain rollout cost and how long does it take?

Planning a retail rollout? Price it first

An Odoo retail chain rollout usually falls inside our published implementation ranges, with store count, integrations and custom work deciding where. These are ranges, not quotes.

On the Odoo pricing page, the US price billed yearly is US$31.10 per user a month for Standard and US$61.00 for Custom. Branches and extra companies need the multi-company functions of Custom, so the structure choice has a license effect.

Our published Odoo implementation cost ranges are US$3,000 to US$9,000 for small projects (4 to 8 weeks), US$9,000 to US$27,000 for mid-size (8 to 14 weeks) and US$27,000 to US$150,000+ for large (12 to 24 weeks). Data migration adds US$1,200 to US$9,000.

Tills, scanners and printers are a separate hardware budget. For a number matched to your stores and users, try the Odoo implementation cost calculator.

How do you roll out Odoo across branches without stopping trade?

Roll out Odoo across branches in waves: prove the model in one store, then repeat it without changes. Every exception you allow in store two becomes a support ticket in store ten.

  1. Clean master data: one product list, one barcode per item, one set of prices.
  2. Pilot: start with the central warehouse and one store, including real transfers and a real month end.
  3. Count and load: count each store on its switch day and load stock by warehouse.
  4. Train by role: cashiers on the register, store managers on receipts, counts and closing.
  5. Roll out in waves: add a few stores at a time, then review stock and cash differences after 30 days.

How iVentureTeam helps with Odoo multi branch retail

iVentureTeam designs, builds and supports Odoo for retail chains, from the first store model to the last branch rollout. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.

  • Store model: a clear recommendation on warehouses, branches or companies, with the license effect spelled out.
  • Stock design: warehouses, resupply routes and reordering rules for each store.
  • POS setup: tills, cash journals, access levels, pricelists and receipts per shop.
  • Training: role-based Odoo ERP training for cashiers, store managers and finance.
  • New branches: a repeatable checklist for each store you open after the first rollout.

Odoo multi warehouse stock case study: KMF Technologies

KMF Technologies is an IT hardware distributor, not a retail chain, but it had the same core problem: nobody trusted the stock figure. The firm supplies IT services, computer hardware and network infrastructure from The Gambia.

Products and categories were tracked by hand, and there was no real-time stock view. Sales, purchase and store teams did not share data, so customers waited while staff checked with each department.

We implemented Odoo Sales, Purchase, Inventory and Accounting in seven phases over 8 weeks. The work defined warehouses, product categories, stock locations and units of measure, set role-based access, and imported the full product master with cost and sale prices.

KMF now runs a connected purchase to shipment workflow with real-time stock levels across its warehouses and fewer entry errors. Read the KMF Technologies Odoo inventory case study.

The bottom line on Odoo multi branch retail

Odoo handles a multi branch retail chain well when each store is a warehouse with its own POS, and when you choose branches or companies on purpose, not by accident. The features are standard; the structure is the project.

Decide the store model with finance, prove transfers and closing in one pilot store, then copy that store without exceptions.

Ready to run every branch on one Odoo database?

Request a structure review

Tell us how many stores, tills and legal entities you run, and we will map them to an Odoo structure. Request a multi branch retail structure review, call +91-90235-15208, or email business@iventureteam.com.

Frequently Asked Questions

Can Odoo handle multiple stores?

+

Yes. Each store becomes a warehouse with its own stock and one or more points of sale, all in one database. Head office sees sales, stock and cash for every store without a sync between systems.

Do I need Odoo multi-company for multiple shops?

+

No, not when one legal entity owns all the shops. Warehouses and POS records per store are enough. Use branches when stores need their own books, and companies only for separate legal entities.

How do I transfer stock between branches in Odoo?

+

Set the central or sending warehouse in Resupply From on the receiving store's warehouse. Odoo then creates a shipment to a transit location and a receipt at the store, by reordering rule or on request.

Can each Odoo POS use its own warehouse?

+

Yes. Each point of sale has an operation type in its Inventory settings, and that operation type belongs to one warehouse. Sales from that till then reduce that store's stock only.

Does adding branches change my Odoo plan?

+

It can. Odoo states that adding a branch enables multi-company functions, and that enabling multi-company on a Standard plan triggers an upsell to the Custom plan. Confirm with Odoo before you create branches.

How do I see sales by store in Odoo?

+

Open Point of Sale, Reporting, Orders and group the pivot or graph by point of sale. You can also group by employee, product or date to compare stores, staff and ranges.

Does Odoo POS work when a store loses its internet connection?

+

Odoo POS is built to keep working during temporary network outages, so a till can continue selling. Orders reach the database once the connection returns. It is not designed for long periods without a network.

How long does an Odoo rollout take for a retail chain?

+

Our published ranges are 4 to 8 weeks for small projects, 8 to 14 weeks for mid-size and 12 to 24 weeks for large ones. A pilot store first, then waves of stores, is the usual pattern.

Free retail walkthrough

Linking your webshop, POS and stock in Odoo?

We walk you through how Odoo keeps stores, online orders and stock in one place, and what to set up first.

Free, with no obligation. A senior consultant replies within 12 business hours.

We use cookies to improve your experience

Essential cookies make the site work; with your permission we also use analytics to improve it. See our cookie policy.