Hi everyone!!
Im currently working on a heavily customized Odoo environment where I need to implement a custom online synchronization system for POS.
As you know Odoo already provides a default POS synchronization mechanism. However, due to the level of customization in this project, we can’t rely on the standard implementation and need to design the synchronization layer from scratch.
- This involves syncing multiple models such as:
Employees
Users
Products
Stock / inventory quantities
Stock transfers
POS sessions
Cash register closings
Orders
Accounting-related data
The Challenge
Not all models follow the same synchronization logic:
Some require bidirectional sync (push & pull).
Some are pull-only (e.g., master data like products or users).
Some are push-only (e.g., POS orders created offline).
The system must support temporary offline usage and later reconciliation.
Conflict handling must be predictable and safe.
Since this is being built directly within Odoo, I’m trying to determine the best architectural approach using:
-Odoo ORM
- write_date or version-based tracking (im currently working with write_date)
-Custom change logs
I’m not asking anyone to build this for me hehe. I’m specifically looking for expert guidance on designing a clean and scalable sync architecture in Odoo, best practices for handling mixed push/pull rules per model, advice on conflict resolution strategies in this context, Feedback on whether my architectural approach makes sense (i can share a simplified version of the implementation for review)
The goal is to build this properly following Odoo’s architecture and Python best practices
If anyone has implemented a custom POS synchronization layer in Odoo, I would really appreciate your insights.
thank you very much in advance 🙏!!!