Skip to Content
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."
NEXT CASE STUDY
LUNCH AT DESK ECOSYSTEM REAL-TIME ORDER & DELIVERY SYNC
READ NEXT CASE STUDY