Online and in-house table booking that flags reserved tables on the POS floor plan and prevents double-booking — built for your restaurant. One-time license from $199.00 USD for Odoo 17, 18, 19 — includes 12 months of updates and support.

Online and in-house table booking that flags reserved tables on the POS floor plan and prevents double-booking — built for your restaurant.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
POS Restaurant Table Reservation is a build-to-order Odoo module that ECOSIRE designs, develops, installs and supports for your full-service restaurant — it is not an off-the-shelf apps.odoo.com download, and there is no instant download. We build the module against your exact floor plan, service periods and confirmation channels, then deploy it on your Odoo 17, 18 or 19 instance (Community or Enterprise) with a typical 2–4 week lead time.
New `restaurant.table.reservation` model linking native `restaurant.table` and `restaurant.floor` records to customer, party size, time slot, deposit and special-request fields
Server-side double-booking prevention via a SQL exclusion constraint plus an `@api.constrains` overlap check on start/end windows — enforced at the ORM layer, not just the UI
`@api.depends` computed status field (free / held / seated / no-show) that keeps website, back office and POS in sync from a single source of truth
OWL/JavaScript patch to the POS floor-plan screen that colours and badges reserved tables for the current service window, with party size and booking time on hover
Public online reservation page (Website + QWeb controller) that generates bookable time slots from your opening hours, turn-time and capacity rules
Party-size, deposit and free-text special-request capture (allergies, high chair, celebration, seating preference) on both the online and back-office forms
At its core the module introduces a new restaurant.table.reservation model that links Odoo's native restaurant.table and restaurant.floor records to a booking record capturing customer, party size, requested time slot, deposit and special requests. Availability is enforced server-side: an SQL constraint plus a @api.constrains check on overlapping start/end windows makes double-booking impossible at the ORM layer, not just in the UI. A @api.depends-driven compute field derives each table's live status (free, held, seated, no-show) so the same truth is shared by the website, the back office and the POS.
On the POS side, a small OWL/JavaScript patch to the floor-plan screen colours and badges every table that has an active reservation for the current service window, showing party size and booking time on hover so your host can seat guests without flipping to another screen. Walk-ins are handled explicitly: staff can seat a walk-in on any genuinely free table, and the module warns before seating a table that is held for an imminent reservation.
The public booking page is delivered as a Website/QWeb controller that exposes bookable time slots based on your opening hours, turn-time and capacity rules — customers pick a slot, enter party size and requests, optionally pay a deposit through your existing Odoo payment providers, and receive an automated confirmation. Odoo automated actions and scheduled ir.cron jobs send email and (via your SMS gateway) text confirmations and reminders, and flag no-shows. Everything is secured properly with ir.model.access.csv groups and record rules so hosts, managers and online customers each see only what they should, and the whole booking dataset is queryable through Odoo's XML-RPC/JSON-RPC API for any downstream reporting or integration you need.
Runs a dining room where covers, turn-times and no-shows directly drive revenue. Wants online and phone bookings, deposits on peak nights and a clear view of the floor without adding a separate reservations subscription on top of Odoo.
Works the host stand during service and needs to see at a glance which tables are reserved, held or free right on the POS floor plan — seating walk-ins confidently without accidentally giving away a table booked for 8pm.
Oversees several venues on one Odoo instance and needs consistent reservation rules, role-based access per location and booking data available via API for group-level reporting and forecasting.
Buy the license on ecosire.com and download the POS Restaurant Table Reservation module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for POS Restaurant Table Reservation, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Reserved tables shown directly on the POS floor plan | Yes — OWL patch colours and badges reserved tables live during service | Possible but you build the POS integration yourself | Rarely — most sync to a separate calendar, not the POS floor plan | |
| Server-side double-booking prevention | Yes — SQL constraint + `@api.constrains` overlap check at the ORM layer | Only if your developer implements it correctly | ||
| Online booking page with slot generation from your rules | Yes — QWeb/Website controller built to your opening hours and turn-times | Buildable but time-consuming | ||
| Deposit capture via your Odoo payment providers | Yes — reconciled against the eventual POS order | Depends on your build | ||
| Automated SMS + email confirmations and reminders | Yes — automated actions + `ir.cron` using your SMS gateway | You wire the cron and gateway yourself | ||
| Walk-in vs reserved-hold conflict warnings | Yes — explicit warning before seating a held table | Only if specified and built | ||
| Fitted to your exact floors, service periods and workflow | Yes — scoped and configured to your restaurant | Yes, but you own the full build and QA cost | no — generic feature set | |
| Ongoing fixes, updates and version-upgrade support | Yes — support window included, retainers available | Your team maintains it | Depends on the vendor's roadmap |
No. This is a build-to-order module. ECOSIRE develops it against your specific floor plan, service periods and confirmation channels, then installs and configures it on your Odoo instance. There is no instant download — you receive a working, deployed module and its source code.
Typical lead time is 2–4 weeks from a confirmed scope, depending on how many floors and service rules you have and whether deposits and SMS are in play. We agree a scope, build on a staging copy, review it with you, then deploy to production and train your team. Rush timelines can sometimes be accommodated — ask when you request a quote.
Every build includes a post-launch support window (its exact length is stated in your quote) covering bug fixes and reasonable adjustments. Because the module is delivered as source code you own, you can maintain or extend it freely afterwards. We also offer ongoing support and version-upgrade retainers if you'd like ECOSIRE to keep it current as you move between Odoo 17, 18 and 19.
We build for Odoo 17, 18 or 19, on either Community or Enterprise. The reservation logic and website booking page work on Community; the POS floor-plan integration uses Odoo's Point of Sale app. We confirm your version and edition during scoping and target the module precisely to it.
Yes. Availability is enforced on the server, not just in the browser. We add a database-level constraint plus an `@api.constrains` overlap check on each table's start/end windows, so two overlapping reservations for the same table are rejected at the ORM layer regardless of whether they come from the website, the back office or the API.
Both. Hosts can seat walk-ins on any genuinely free table and get a warning before occupying a table held for an imminent reservation. For deposits, customers can pay online through your existing Odoo payment providers when they book, and the paid amount is recorded on the reservation and reconciled against the final POS order.
Online and in-house table booking that flags reserved tables on the POS floor plan and prevents double-booking — built for your restaurant.