Welcome back to the Valkuz blog where we break down the latest in the Odoo ecosystem to give you an edge. The Odoo Insider sessions are a treasure trove of practical information, straight from the experts on the functional and technical frontiers of the platform. The last session was no exception, covering Odoo 18’s new features, complex data migration and creative solutions to common user problems.
I’ve taken the key points from this session and expanded on them, adding the Valkuz perspective to not only tell you what was discussed but why it matters to your business. Let’s get started.
Odoo 18’s Game Changing Features: A New Era of Productivity
1. Beyond the Price: The Odoo 18 Quote Calculator
For years sales teams have struggled with quotes that involve more than just quantity and unit price. Think of quoting office furniture where you have costs for individual components, assembly labor and variable shipping. The new Quote Calculator in Odoo 18 is the answer to this problem.
At its core it’s a spreadsheet environment built into the quote template. This allows for dynamic multi-variable calculations to determine the final price. But the real innovation is the integration with the sales order itself. The calculator can now synchronize product descriptions with sales order lines. For example if you use a specific vehicle for a delivery, its name can be automatically added to the “transport cost” line item on the quote.
This level of dynamic detail without manual intervention is a big step forward. It standardizes complex quoting processes, reduces the risk of human error and minimizes the need for custom development that many businesses previously relied on.

2. The Vanishing Act: Odoo’s Evolving Save Functionality
Users migrating to newer Odoo versions often ask, “Where did the save button go?” The traditional manual save button is being phased out in favour of an auto-save functionality, now represented by a small cloud icon.
This is a deliberate UX choice reflecting modern software philosophy. Odoo now saves a record when you leave the interface, assuming you’re done. The goal is to make the process more fluid and reduce unnecessary clicks. While the manual save button still exists and is useful for triggering specific automations or on-change actions without leaving the screen, its role has shifted from mandatory to situational. This is part of a broader effort to make Odoo feel faster and more intuitive for everyday tasks.
User Scenarios: An Expert Q&A Deep Dive
The real value of the Odoo Insider session was the deep dive into user submitted questions. These real world scenarios push the boundaries of standard functionality and show where smart configuration and light customization can unlock huge value.
Pricing Kits and Combos
The Problem: A common headache for many businesses is applying pricing rules to kits or BoM (Bill of Materials) products. Price lists applied to individual components do not, by default, roll up to affect the final sales price of the parent kit.
Valkuz Take: Odoo’s logic is sound – it evaluates the price of the product on the sales order line which is the kit itself. The complexity arises because there isn’t a single, intuitive way to show how component level discounts translate to the final kit price.
- Workaround: The simplest approach is to manually create price list rules for each kit. This is direct and codeless making it a cost effective solution for businesses with a manageable number of kits.
- Customization (Valkuz Recommendation): For a more scalable solution a simple automation rule written in Python is the way to go. This rule can be configured to automatically generate a price list rule for a kit whenever all its components have corresponding rules. This is less intrusive and cheaper than modifying the core sales price computation logic and provides a robust and maintainable solution.

Inter-Warehouse Replenishment
The Problem: How can you automatically trigger a stock transfer from a central warehouse to a secondary one when stock levels at the secondary location fall below a minimum threshold?
Valkuz Take: This is a classic inventory management scenario that Odoo handles out of the box, provided you know how to configure it correctly.
- Setup: The key is to enable “Multi-step Routes” under the Inventory settings. From there you configure a replenishment route for your secondary warehouse that sources from your main warehouse. Combined with reordering rules on your products that define minimum and maximum stock levels, the system has all the information it needs.
- Process: When you run the “Procurement Run Scheduler,” Odoo checks the reordering rules. If a product is below its minimum quantity, the system automatically creates a delivery order from the main warehouse and a corresponding receipt for the secondary warehouse. It’s a seamless “set it and forget it” process.

Migrating Transactional Data
The Problem: A business wants to migrate from an external accounting system like Xero and bring all its historical transactional data into Odoo.
Valkuz Take: This is a critical decision point where the wrong choice can lead to significant cost and complexity.
- One-Shot Migration: The official and highly recommended best practice is to import only the opening balances. Trying to import years of historical invoices, bills and payments is a massive task with very low ROI. The data structures rarely match perfectly, leading to errors and a “dirty” database. The historical data is better stored as exported Excel or CSV files in the Odoo Documents app for archival purposes.
- Ongoing Synchronization: If you need to run both systems in parallel, custom development using the Odoo API is the only viable path. This requires careful mapping of master data (partners, journals, taxes) and robust error handling. It’s a big undertaking and should always be developed and tested in a staging environment.
Multi-Level Expense Hierarchies
The Problem: A user wants to create “multi-level” expense categories, either for reporting or for a multi-step approval process.
Valkuz Take: This question shows Odoo’s flexible data model. Expenses themselves aren’t hierarchical but are linked to “products” which in turn are linked to “product categories”. We can leverage this relationship.*
For Hierarchical Reporting: Expense categories don’t have a parent/child structure. However, product categories do. By using Odoo Studio to add a related field on the expense model that pulls the product_category from the selected expense product, you can then group your expense analysis reports by this hierarchical category. It’s a codeless customization.
- For Multi-Level Approvals: Odoo’s default is a single level approval by the employee’s manager. To create a chain of approvals (e.g. Manager -> Expense Team -> Accounting) you can use Odoo Studio to customize the “Approve” button’s action server. This allows you to define a sequence of state changes and assign required approval groups to each step, building a robust workflow without writing complex Python code.

Preventing POS Users from Modifying Invoices
The Problem: How can a business prevent Point of Sale (POS) users from modifying invoices after they have been completed and posted?
Valkuz Take: This is a security and accounting integrity concern. Odoo’s core principles provide strong protection here.
A posted invoice can never be modified. Any change requires resetting it to a draft, an action that is logged and requires specific user rights.
- POS Interface: From the POS screen itself a user can’t modify a posted invoice. They can only view, print or initiate a return (which creates a separate credit note).
- Security Measures: The real control lies in backend access rights. Ensure your POS users are in a group with minimal accounting permissions. For extra security enable journal hashing to create an immutable chain of entries and PIN codes for each POS user to prevent unauthorized access if a terminal is left unattended.
Conclusion: The Power of a Flexible Platform
This Odoo Insider session showed Odoo’s path: it’s a platform that is constantly evolving, adding more and more standard features while keeping the incredible flexibility to adapt to business needs.
So the main message for any Odoo user or implementer is to accept this duality. Before going for expensive custom development, always explore the full depth of Odoo’s standard configuration and Studio. Often the solution is already there, hidden. And when customisation is needed, a targeted approach (like the automation rule for kit pricing) is always better than modifying the core code.
By knowing this you can really leverage Odoo and build a system that will be powerful and maintainable for years.