BACK TO CASE STUDIES
Restaurant SaaS
Building a Self-Serve, Multi-Tenant Restaurant POS SaaS
Launch a subscription-based restaurant POS business without building your own infrastructure — restaurant owners sign up, get an isolated workspace and a working POS in minutes, and you get paid automatically based on their real usage.
6
Custom & Integrated Modules
100%
Automated Tenant Onboarding
3-Layer
Country Detection Fallback
0
Manual Setup Steps Per Signup
PROJECT OVERVIEW
The client wanted to offer Point of Sale as a subscription product to restaurant owners — the kind of self-serve experience where someone signs up, gets their own private workspace, and is taking orders within minutes, all without a single manual setup step from the platform's team. Odoo Community wasn't built for that out of the box: it's designed for one company managed by one internal team, not hundreds of independent restaurant tenants sharing a single platform. Serynto re-engineered Odoo's foundations to make that multi-tenant, self-serve model possible.
THE CHALLENGE
Odoo has no native concept of "sign up and get your own isolated workspace" — every new user by default shares the same company data, which is a non-starter for a SaaS product where Restaurant A can never see Restaurant B's orders, products, or financials. Manually provisioning a new company, chart of accounts, and POS configuration for every signup would have made the platform impossible to scale, and every restaurant owner signing up would have needed a salesperson or technician to set them up by hand. On top of that, the client needed the platform to feel like a real branded product rather than a visible Odoo installation, needed a way to bill customers based on actual usage — extra staff beyond a free tier, extra daily orders beyond a limit — rather than a single flat fee, and needed to know which country a new signup was in so tax and accounting setup could be correct automatically, even when a restaurant owner signed up with nothing more than a Google account.
OUR SOLUTION
Serynto built an automated onboarding engine that fires the moment someone signs up, whether through email or Google OAuth: it creates a brand-new, fully isolated company for that restaurant, generates a dedicated pricelist, sets up the correct chart of accounts based on automatically detected country, creates a ready-to-use POS configuration, and assigns the new owner a predefined "Restaurant Owner" role — all without any staff involvement, while quietly linking the new company under the platform admin for oversight. Country detection runs through a layered fallback — Google account locale first, then browser geolocation, then IP-based lookup — so tax and localization are correct from the very first login even for OAuth signups. To keep tenants properly isolated, Serynto built a system that automatically generates and maintains multi-company data access rules across every relevant model — POS, accounting, stock, HR, sales — so one restaurant's data is structurally walled off from another's without relying on manual configuration per model. The platform was fully de-branded, replacing Odoo's default signup emails and "Powered by Odoo" footer so it presents as the client's own product. Finally, Serynto built a usage-based billing engine on top of Odoo's accounting: each subscription carries a base monthly price plus metered charges for employees and orders beyond a free tier, with a scheduled job generating and posting invoices automatically every month — with built-in protection against ever double-billing the same period.
OUR PROCESS
Platform Architecture
Designed the multi-tenant data model, mapping exactly which company-scoped models needed automatic isolation across POS, accounting, HR, and stock.
Self-Serve Onboarding Engine
Built the automated signup-to-company pipeline, covering both email and Google OAuth signups with a shared provisioning flow.
Automatic Tenant Isolation
Engineered a system that generates and maintains multi-company access rules across every relevant model, keeping tenants structurally separated.
Localization & Compliance
Implemented layered country detection so chart of accounts and tax setup are correct automatically, even for OAuth signups.
White-Label Branding
Removed all Odoo branding from emails and login screens and rebuilt the signup experience to feel like the client's own product.
Usage-Based Billing Engine
Built a subscription and metering system with automated monthly invoicing based on real usage, not flat fees.
Testing & Rollout
Validated the entire tenant lifecycle — signup, isolation, POS setup, and billing — across multiple simulated restaurant accounts before launch.
TECHNOLOGY STACK
Odoo 19
Python
JavaScript (OWL)
PostgreSQL
OAuth 2.0
IP Geolocation API
Automated Cron Billing
"We wanted restaurant owners to sign up and just start selling — no calls, no manual setup on our end. Serynto built exactly that, and the billing runs itself in the background now too."