L'Élite — a commercial Odoo 18 theme for restaurants and fine dining
Designed and shipped a paid Odoo 18 website theme for restaurants and hospitality brands — eight editable pages, around twenty-five drag-and-drop snippets, and an e-commerce bridge that restyles the whole shop flow.
- Client
- TABSAP commercial product, sold on the Odoo App Store
- Sector
- Web
- Stack
- Odoo 18 · QWeb · SCSS · JavaScript · Odoo Website Builder
- Year
- 2026
The problem
Odoo's website builder is capable, and almost every theme built on it looks like a theme built on it. For a restaurant or a fine-dining brand, where the website is the first impression and the aesthetic is the product, that is disqualifying.
The harder constraint is that a theme cannot simply be a beautiful set of fixed pages. Whatever ships has to stay fully editable inside Odoo's own builder, or the restaurant owner has to call a developer to change their opening hours.
What I built
A commercial theme sold on the Odoo App Store, shipped as two modules — the theme itself, and an e-commerce bridge that auto-installs alongside Website Sale.
Eight designed pages — home, menu, about, gallery, wine cellar, reservations, contact and legal — built as native QWeb templates and SCSS from custom mockups, not adapted from an existing template.
Around twenty-five drag-and-drop snippets. Every section is reorderable and duplicable from Odoo's builder, so the design survives the owner editing it.
A runtime light/dark mode with a custom animated toggle, on a full design-token system — a cognac-and-gold palette with Playfair Display and Work Sans.
Table reservations that land in the CRM. The booking form creates an Odoo lead directly, which required custom JavaScript to work around Odoo's own form handling. A reservation that only sends an email is a reservation someone forgets.
A themed e-commerce flow. The bridge module restyles the shop grid, product pages, cart and checkout to match, with faceted filters, a working price slider, searchable country and state selects, and a ten-product boutique catalogue.
Everything is responsive, self-hosted, and depends on no external service.
Listed on the Odoo App Store →
Outcome
The build was only half the work. Shipping a paid product also meant proprietary OPL-1 licensing, a store listing with banner, ten screenshots, animated GIF previews and a custom icon, a keyword-optimised manifest, a branch-per-Odoo-series release strategy, and a self-hosted live demo.
Why it mattered
This is TABSAP's first paid product listing rather than a client deliverable, and it is a different discipline. A client accepts a build against a brief. A store listing has to sell itself to someone who will never speak to me — which means the demo, the screenshots and the first ten seconds of the page matter as much as the QWeb underneath.
Have a system that needs to work in production?
Tell me what's breaking — or what you're building.