Odoo 18, the latest version of the popular open-source ERP solution, represents a significant upgrade in an already advanced technical product and architecture. Odoo 18 is engineered to maximize performance, resilience, and developer efficiency but also the ongoing developments in demanding businesses that are more scalable, faster, intelligent, and automated.
Odoo has always been modular and customizable, drawing developers and businesses from around the world. Odoo 18 expands these capabilities by offering "smarter" customization options, reducing steps in workflows, and providing tools that can simplify complex tasks. This blog left the scope somewhat vague; we will identify the technical features added in Odoo 18, and how it provides developers and systems administrators with more ways to build solutions that fit various businesses' needs.
If you're involved in Odoo consulting, this update brings new opportunities. It gives consultants, developers, and IT teams better tools to build efficient, custom solutions for all types of industries. We’ll show how Odoo 18 helps the Odoo community build stronger and more flexible business applications.
Key Technical Improvements in Odoo 18
Python and PostgreSQL Upgrades
- Python Compatibility: Odoo 18 supports Python versions 3.11+, meaning enhanced speed, less memory usage, and some modern-looking syntax.
- Postgresql 13+: Improved query speeds, better parallel query management, and improved indexing in newer versions lead to improved database management.
Revamped ORM and Database Management
- Enhanced ORM Framework: A more advanced query planner, improved caching, and enhanced support for larger data sets allow a seamless interaction with your database.
- Partitioned Table Support: Split large databases into manageable partitions allowing the easy manipulation of large data sets.
Dynamic Search Enhancements: The _search_display_name now allows for advanced search capability beyond just search name fields.
Odoo 17 used _name_search for basic searches:
def _name_search(self, name, domain=None, operator='ilike', limit=None): Odoo 18 introduces _search_display_name for advanced searches:
def _search_display_name(self, operator, value):
Dynamic Search Optimization: Switch from inselect to the standard SQL IN clause:
In Odoo 17:
operator_new = 'inselect'
In Odoo 18:
Security and Compliance Enhancements
- Improved Role-Based Access Control: More granular permission system, Enhanced role-based access control, Improved security group management, better audit trailing capabilities
- Multi-Factor Authentication: Enhanced multi-factor authentication, Improved session management, Better password policies, Enhanced API security.
- New Syntax for checking Access Rights :
Odoo 17:
self.check_access_rights('read')
self.check_access_rule('read') And Odoo 18:
record.check_access("read") has_access() Method: A new method returns a simple boolean value, making it easier to integrate access checks into the business logic.
display_link = record.has_access('read') Advanced Web Client Features:
Odoo 18 significantly improves frontend development, leveraging a bunch of technical improvements to support a modern user interface and provide usable developer tools. The improvements were made to improve performance, scalability, and maintainability.
Modernizing JavaScript frameworks Vue.js Integration: Odoo 18 introduces Vue.js components along with the Owl framework. The advantages of this are:
- A transition/migration path from Owl to Vue.js for an easy transition.
- Greater component reuse and maintainability.
- Better state management to support complex applications.
- An enhanced developer experience overall.
Updated JavaScript Tools: Odoo 18 follows modern JavaScript tooling standards including:
- Give support for ES6+ syntax, resulting in more readable and maintainable code.
- Enhanced webpack configuration, which provides quicker builds and better optimized bundles.
- More sophisticated asset bundling methods to optimize performance.
- Enhanced hot-reloading, which increases the speed and efficiency of development.
React.js Integration
- The major new UI components in Odoo 18 are implemented using React.js. This allows for:
- Better responsiveness and interactivity.
- Better maintainability of UI components.
- Better consistency for developers building complex UIs.
Theme Customization with LESS/SASS
- Managing themes now processes faster with support for:
- LESS and SASS framework for more efficient styling.
- Streamlined customization process, decreasing design changes time.
Dynamic Asset Loading
- Odoo 18 also reduces page loading time using.
- Dynamic Asset Loading, so we only load the assets that are needed.
- More optimized delivery of frontend assets so Odoo can better enhance user experience.
Streamlined RPC Calls: In Odoo 18, we take a massive leap forward on simplifying remote procedure calls (RPC) to make life easier when blurring the lines between the backend & frontend.
In Odoo 17:
import { jsonrpc } from "@web/core/network/rpc_service"; Odoo 18:
import { rpc } from "@web/core/network/rpc";
REST API Improvements:
Odoo 18 is significantly better with its REST API and real-time capabilities allowing developers to do integrations with reduced friction and spent focus on modern applications. The key improvements are on flexibility, security, and scalability.
RESTful API Improvements: Odoo 18 introduces changes to its REST API that improve and simplify the development of integrations:
- Streamlined Endpoint Structure: Simplifies interaction by removing unnecessary endpoints and better organizing remaining endpoints.
- Improved Authentication Handling: Added OAuth2 and token based authentication capabilities in addition to standard session-based authentication for integrations that require secure and scalable integrations.
- Cleaned Up Response Structure: Cleaner and consistent API responses that reduce the complexities involved in processing responses in your code.
- Rate Limiting: Added improvements to our rate-limiting capabilities that protect APIs from overuse.
Odoo 18 GraphQL Support:
- This provides developers with more flexibility and control on how they work and consume APIs.
- Flexibility over REST, especially when you need to build complex web applications.
- Reduced the need for custom APIs by enabling efficient, building and adaptable queries.
Extended API Endpoints: Odoo 18 adds endpoints to reduce the amount of custom development:
- New endpoints for most popular modules like CRM, Inventory, and Accounting.
- Full CRUD coverage across a larger proportion of models.
WebSocket Support:
Odoo 18 welcomes real-time communication with WebSocket support. WebSocket support means:
- Real-time communication: Provides real-time notifications, messages, and connected data feeds.
- Enhanced Event Handling: Provides increased levels of control over more complex event-driven processes.
- Enhanced real-time notifications: Provides real-time updates of all events and notifies the user immediately when something happened.
- Improved WebSockets Management: Simplifies the development and maintenance of adding and using WebSocket connections.
Odoo 17 vs. Odoo 18: What’s New?
The chatter component is redesigned for simplicity:
Odoo 17: Traditional chatter structure required manual configuration:
<div class="oe_chatter">
<field name="message_follower_ids"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
Odoo 18: Now streamlined with a single <chatter/> tag for improved maintainability:
List view improvements for better data representation: The tree view in Odoo 17 migration to a more user-friendly list view in Odoo 18. Here is the full blog on Odoo 18 new features.
Odoo 17:
<tree editable="bottom">
<field name="employee_id"/>
<field name="filename"/>
</tree> Odoo 18:
<list>
<field name="name"/>
<field name="widget_type"/>
<field name="sequence" widget="handle"/>
</list> Enhanced translation functions using env._() for better performance:
Odoo 17 relied on _() for translations:
raise ValidationError(_('Invalid input'))
Odoo 18 introduces env._() for better context and lazy translations:
raise UserError(self.env._("Invalid input"))
New Reporting Features:
Date Granularity Changes: Odoo 18 adds new flexibility in grouping and reporting by date:
- New month_number, quarter_number, and week_number fields are added.
- Now, filter and group data across years.
Group and Sort Related Fields: Odoo 18 improved how we group and sort related fields:
Odoo 17: Required a field to be stored in order to group or sort.
Odoo 18:
- You can group, aggregate, and sort related fields that are marked not stored.
- You need related_sudo=True or compute_sudo=True.
In Debugger Mode:
Now in Debugger mode model can directly view

Conclusion
Odoo 18 positions itself as an exciting new ERP package, demonstrating technological experience in enhancements for both developers and users alike. The focus on performance improvements, both for usability of developers and usability for how modern-day businesses do things, certainly gives users a sound framework to either build scalable or for best use case solutions for their space.
Adoption of modern technologies for Odoo 18, like the latest version of python and postgreSQL, performance enhancements and support for vue.js, also provides the foundation for solid and sustainable business applications. Improvements to security and scalability, along with enhancement in usability, make it a very interesting and compelling proposition for modern organizations.
Getting to the point of upgrading to Odoo 18 will take considerable effort and planning and testing (if using custom modules or engaging with 3rd party integrations). However, expected improvements and additional added values in the roadmap and other opportunities in this opportunity reflects completely worthwhile investment for the developer community, and also the organizations developing better solutions. Naturally too, it would represent another opportunity for organizations to think smarter and be more creative with their customizations.
So, are you ready to get excited about Odoo 18? Are you ready to check out the new documentation, get active with the Odoo community and get started? It could give you much smarter and improved way to run your business!