Odoo Multi-Branch POS Setup for a Profit and Loss per Branch · Calibre Consulting

One company, several shops, a profit and loss for each branch.

Set up branches, per-shop journals and POS payment methods in Odoo 19 so each shop of one legal entity gets its own profit and loss.

This guide sets up several shops under one legal entity in Odoo so each shop gets its own profit and loss statement. The short answer: create each shop as a branch of the parent company. Branches post to the parent's chart of accounts and use its taxes, so you keep one set of books, while every entry records its branch. Per-shop journals and payment methods are still needed, but they track where money was received and do not split the P&L on their own.

It is written for owners, accountants and administrators of multi-location retail or restaurant businesses. The steps were verified on Odoo 19.

Before you start

Three ways to split results by shop

How branches handle the accounting

Step by step: create the branches

  1. Open the Settings app and go to Users & Companies > Companies.
  2. Open the parent company, which is the legal entity.
  3. In the Branches tab, click Add a line, enter the shop's name and address, and save. Repeat for each shop. A Branches button now appears at the top of the parent's form.
  4. Go to Users & Companies > Users, open each user and add the branches they work in to the Companies field.

Step by step: journals and payment methods for each shop

Tick only the branch in the company selector at the top right first, so new records are created in it.

  1. Open the Accounting app, go to Configuration > Accounting > Journals, and create a journal with Type Bank for the shop's bank account and one with Type Cash for its till.
  2. Open the Point of Sale app and go to Configuration > Payment Methods. Create a cash method whose Journal is the shop's cash journal and a card method whose Journal is its bank journal. A card method also needs an Outstanding Account, the holding account its payments sit in until reconciled with the bank. A method with no journal charges the sale to the customer's account instead.
  3. Go to Configuration > Settings and pick the shop in the Point of Sale field at the top. Set Payment Methods to that shop's methods, and under Default Journals set Orders to a journal of the same branch. Each session's closing entry is posted there, so it is recorded under the branch.

Rules Odoo enforces for each shop

Read the P&L per branch

  1. In the company selector, tick only the branch you want to review.
  2. Open the Accounting app and go to Reporting > Profit and Loss. The figures cover that branch only. Selecting the parent instead also selects its branches and shows the whole entity.

To compare branches side by side, use a horizontal group, which adds a column per value of a field. Turn on developer mode, which shows technical menus, from the Developer Tools section of the Settings app. Then in Accounting go to Configuration > Accounting > Horizontal Groups, create a group with a rule whose Field is Company, and add Profit and Loss under Reports. With all branches selected, choose the group from the Horizontal Group button on the Profit and Loss report. It should then show a column per company.

Check that it worked

  1. Open a session in one shop, ring up a card sale and a cash sale, and close the session.
  2. In Accounting, go to Accounting > Journal Entries and open the newest entry in that shop's Orders journal. The Company column shows the branch.
  3. Tick only that branch and run Profit and Loss for today. The sales appear. Tick a different branch instead and they do not.

Common mistakes to avoid

Steps verified on Odoo 19. Menus and labels can differ on other versions.

Common questions

Should several shops of one legal entity be branches or separate companies in Odoo?

Branches. A branch shares the parent's chart of accounts, taxes, currency and fiscal year, while each journal entry still records the branch, so you get per-shop results from one set of books. Separate companies are meant for separate legal entities.

Can Odoo Point of Sale tag sales with an analytic account per shop?

Not in standard Odoo. Point of Sale has no analytic field on the shop, order or payment method, and analytic distribution models cannot tell shops apart when they are all in the same company. Using branches gives the per-shop split without analytic accounts.

Do Odoo branches file one tax return or several?

The tax report groups a company with every branch that has the same Tax ID, and a branch with no Tax ID counts as having its parent's. Leaving the branch Tax ID empty keeps one combined return.

Can two Odoo POS shops share a cash payment method?

No. A cash payment method can only be used by one point of sale, and a cash journal can only be linked to one payment method, so each shop needs its own. Card methods can share a bank journal.

Can an existing Odoo company be turned into a branch later?

No. Odoo blocks changes to the company hierarchy after a company is created, so branches must be added under the parent from the start.

Talk to the team.

If you are setting this up, or Odoo is not behaving the way this guide describes, book a 30-minute call. We will look at your configuration and tell you what it needs. Calgary studio, in-house team, no offshore handoffs.

Book the call →