Hotel PMS Connector Shell for Odoo 19
A ready-to-extend Odoo 19 framework for wiring any Hotel PMS or channel manager into Odoo — adapter contract, idempotent sync engine, field mapping and an audited sync log, with a working reference adapter and zero network calls.
The problem integrators face
Every hotel integration project rebuilds the same plumbing: connection management, credential storage, idempotent sync, field mapping, retry logic and an audit trail. Building a Hotel PMS connector from scratch for each client burns weeks before a single booking flows, and hand-rolled credential handling and ad-hoc logging are easy to get wrong — with real privacy and reliability consequences.
How the connector shell solves it
This module ships the reusable engine once, so you do not rebuild it. It provides the abstract adapter contract, a pluggable adapter registry, an idempotent inbound and outbound sync engine, a field-mapping layer, encrypted write-only credentials and an audited, auto-purged sync log. A bundled in-memory reference adapter proves the whole shell works end-to-end with no network and no credentials. To support a specific PMS or channel manager, an integrator ships a small downstream addon that inherits the shell and declares one adapter key — no fork required.
Key features
Pluggable adapter registry
Concrete adapters register with a unique adapter key; the shell resolves it at runtime. Add a PMS or channel by shipping a downstream addon — no fork of this module.
Idempotent two-way sync
Inbound availability and rates plus outbound reservation push. Re-running a window updates rows instead of duplicating them, keyed on external ID, date and room type.
Field-mapping layer
Translate external codes to Odoo records. Unmapped codes are quarantined for review instead of being silently dropped, so no data is lost.
Audited sync log
Every operation is recorded with direction, status and error class, redacted of secrets and auto-purged on a daily cron for GDPR storage-limitation.
Encrypted credentials
Fernet-at-rest, write-only secrets that are never rendered back and never appear in logs or tracebacks. The shell never touches payment-card data.
Resilient + multi-company
Errors are classified (auth, rate-limit, timeout, transient, permanent) and retried with bounded exponential backoff. Records are isolated per company with a per-connection health surface.
Watch the walkthrough
English — product walkthrough
Español — recorrido del producto
Deutsch — Produkt-Rundgang
See it inside Odoo
Who it is for
- Odoo integrators and partners building a hotel vertical
- Hotel groups and IT teams running Odoo back-office
- Developers shipping a specific PMS or OTA adapter as an add-on
Compatibility
Odoo 19.0 Community and Enterprise. Depends only on base and mail plus the Python cryptography library. Installs, upgrades and passes its test suite on a clean database with no external SaaS, no credentials and no outbound traffic.
Pricing
Free & open source
Published under the LGPL‑3 licence. Extend it, ship your own adapter on top, no per-database fee.
Frequently asked questions
How do I install the Hotel PMS Connector Shell on Odoo 19?
Add the module to your addons path and install it from Apps. It depends only on base and mail plus the Python cryptography library, and installs on a clean database with no external credentials.
Does it connect to a real Hotel PMS out of the box?
It ships a working in-memory reference adapter that proves the shell end-to-end. To connect a real PMS or channel manager such as Mews, Cloudbeds, Opera Cloud or SiteMinder, you add a downstream adapter addon that inherits the shell.
How do I add support for a specific PMS or channel manager?
Create a new addon that inherits the abstract connector, declares a unique adapter key and implements authenticate, test, pull and push. The pluggable registry resolves your key at runtime — you never fork this module.
Does it work on Odoo Community?
Yes. The shell runs on both Odoo 19 Community and Enterprise and requires no external SaaS.
How are credentials and guest data protected?
Credentials are stored Fernet-encrypted, write-only, and never returned or logged. The sync log is redacted and auto-purged on a daily cron, and the shell never stores payment-card data.
Is the module free?
Yes, it is published free under the LGPL‑3 licence with no per-database fee. Paid production adapters for specific systems are offered separately as downstream add-ons.
Ready to build your hotel integration?
Install the shell, run the reference adapter, then ship your own PMS adapter on top.
Contact FlexigoTech| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 1387 |
| Technical Name |
flexigo_hotel_pms_channel_ready_connector_shell |
| License | OPL-1 |
| Website | https://flexigotech.com |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module