Run several restaurants or branches from a single Odoo instance with per-branch floors, menus, and price lists plus a consolidated cross-branch sales dashboard. Built, installed, and supported by ECOSIRE on a build-to-order basis. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $499.00 USD; request a quote for a scoped proposal.
Illustrative previewRun several restaurants or branches from a single Odoo instance with per-branch floors,
menus, and price lists plus a consolidated cross-branch sales dashboard. Built, installed, and supported by
ECOSIRE on a build-to-order basis.
No DIY setup — a working app, built, installed and supported by ECOSIRE.
Start with a one-time build price. We scope it with you at kickoff.
ECOSIRE builds, configures and installs it on your Odoo.
You go live in about 2–4 weeks, with a post-launch support window.
Restaurant groups and franchises hit a wall as soon as they open their second location on Odoo. The native Point of Sale app was designed around a single shop per configuration: floors and tables belong to one pos.config, product availability is global, and there is no first-class notion of a "branch" that ties a POS session, its cashiers, its menu, and its pricing together. Operators end up cloning POS configs by hand, duplicating products across price lists, and stitching sales figures together in spreadsheets at month-end. Multi-company setups help with legal isolation but make menu management and consolidated reporting worse, not better, because Odoo core keeps each company's data siloed.
The POS Multi-Restaurant / Multi-Branch Manager is a module we build to close that gap. We introduce a branch model (a new models.Model with _inherit/relational links to pos.config, res.company, product.pricelist, and restaurant.floor) so that each location carries its own floors and tables, its own menu availability, and its own price list, while still rolling up into one reporting layer. On the ORM side we add computed fields (fields.Monetary, @api.depends) for per-branch and consolidated totals, and stored compute fields where the dashboard needs to aggregate quickly. POS sessions are stamped with the operating branch and validated with record rules so a session opened at Branch A can never post orders, read tables, or reconcile cash against Branch B. Menu management is centralized: an admin edits the master catalog and a "push to branches" action (an ir.actions.server / automated action) propagates products, categories, and prices to the selected branches, with per-branch overrides preserved.
Security is done the Odoo-native way rather than bolted on. We ship an ir.model.access.csv for the new models plus ir.rule record rules keyed on branch membership, so a branch manager sees only their location's sessions, orders, and cashiers, while a group operator sees everything. Cashier and manager permissions are modeled as security groups (res.groups) with menu and button-level visibility in the OWL POS UI and back-office XML views. The consolidated sales dashboard is delivered as an Odoo view (list/pivot/graph plus an OWL dashboard component) reading from a read-optimized model, and we provide QWeb PDF reports for per-branch and group-level daily/period sales. Where you already run automation or external systems, the module respects the standard XML-RPC / JSON-RPC API so headquarters tools, BI, or a franchise portal can pull branch-scoped figures without direct database access.
This is a build-to-order engagement, not an instant download. After a short scoping call we confirm exactly which of the capabilities below you need, your Odoo edition (Community or Enterprise), and your target version (17.0, 18.0, or 19.0) — Enterprise unlocks the studio-grade POS restaurant features and advanced reporting we build against, while Community deployments get an equivalent back-office reporting layer. We then develop the module against your version, validate it on a staging copy of your database through UAT, and only promote to production with a rollback plan in hand. Typical delivery is 2-4 weeks from confirmed scope depending on how many branches, the depth of the menu-push logic, and any integrations. You receive the full source, documentation, a training session, and a post-go-live support window.
Runs 3+ outlets on one Odoo instance and needs consolidated daily sales and average-ticket figures across all locations without exporting each POS to a spreadsheet, plus confidence that each site's cash reconciles independently.
Oversees franchised branches that may be separate companies. Needs to push a standardized menu and pricing to every branch centrally, allow local price overrides, and enforce that each franchisee only sees their own sessions, orders, and staff.
Manages one location's floors, tables, cashiers, and shift close. Needs a POS scoped strictly to their branch and role-based limits on refunds, discounts, and price overrides so front-of-house staff can't act outside their permissions.
Owns the Odoo deployment and wants a module built the native way — proper `ir.model.access.csv`, record rules, and OWL/XML views — that upgrades cleanly across 17/18/19 and exposes branch data over the standard XML-RPC/JSON-RPC API.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Multi-branch data model | First-class branch model linking POS, floors, price lists, and company | Whatever your developer designs, if scoped correctly | Often a thin config clone, no true branch entity | No branch concept; one shop per POS config |
| Per-branch isolation | Record rules on branch membership for sessions, orders, cash | Possible but must be built and tested from scratch | Usually relies on manual multi-company setup | Only via separate companies, which silos everything |
| Central menu push | Server action propagating menu and prices with local overrides | Buildable, but propagation and override logic is non-trivial | Rarely included; menus managed per branch | Manual product and price-list duplication |
| Consolidated reporting | Cross-branch dashboard plus QWeb PDF group reports | Depends on effort spent on aggregation and views | Typically per-shop reports only | Spreadsheet exports stitched by hand |
| Version and edition fit | Built to your exact 17/18/19 and Community/Enterprise | Tied to whoever built it and their assumptions | Pinned to the versions the vendor chose to support | Core behavior only, same across the board |
| Support and ownership | Post-go-live window, full source, and git repo handover | Depends entirely on the contractor's retainer | Vendor support queue, no source ownership | Community forums or a paid Odoo partner |
| Rollout safety | UAT on staging with a documented rollback plan | Only if the contractor insists on staging | Install-and-hope; limited pre-production validation | Not applicable — no custom code to validate |
This is a build-to-order module, so there is no instant download. After a scoping call to confirm your branch count, menu-push depth, Odoo version, and edition, typical delivery is 2-4 weeks from confirmed scope. Larger fleets or deep integrations may extend that, and we give you a firm timeline once scope is locked.
We build against Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. Enterprise unlocks the advanced POS restaurant and reporting features we build on top of; Community deployments receive an equivalent back-office reporting layer. We confirm your exact version and edition during scoping so the module targets your environment precisely.
Every engagement includes a post-go-live support window for bug fixes and questions. Because you receive the full source and git repository, your team can maintain and extend the module. For future Odoo version upgrades or new features, we offer follow-on support and migration engagements.
Both. If your branches live in one Odoo company we scope them with a branch model and record rules for isolation and consolidated reporting. If franchisees are legally separate companies, we adapt the record rules and consolidation layer to your multi-company topology so central menu push and group reporting still work across company boundaries.
Yes. A central action propagates products, categories, and base prices to the branches you select, while per-branch price lists and availability overrides are preserved. You edit the master catalog once and choose which locations receive each update, and local pricing or menu toggles stay intact.
Yes. The module exposes branch-scoped figures over Odoo's standard XML-RPC and JSON-RPC API, so HQ dashboards, BI tools, or a franchise portal can read consolidated or per-branch sales without touching the database directly. We document the available models and fields as part of handover.
We build cleanly against your target version using standard ORM, security, and view patterns rather than fragile hacks, which keeps upgrades tractable. When you move to a newer Odoo version we can deliver a migration of the module as a follow-on engagement, tested on staging before production.

A build-to-order Odoo localization that loads Algeria's full wilaya and commune hierarchy with bilingual French and Arabic names, wired into partner addresses and reporting. ECOSIRE builds, installs, and supports it after your quotation.



A build-to-order Odoo module that lets you render any accounting report — P&L, Balance Sheet, aged reports, journals, trial balance — in a currency of your choice, with automatic conversion at the rate you define. ECOSIRE scopes, builds, installs and supports it for your Odoo 17/18/19 environment.
Run several restaurants or branches from a single Odoo instance with per-branch floors, menus, and price lists plus a consolidated cross-branch sales dashboard. Built, installed, and supported by ECOSIRE on a build-to-order basis.