Skip to Content

Odoo Insider's Deep Dive on Odoo 18, Customization, and Critical User Questions

On 2025 June 10.

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.

Odoo Shipping and Assemby costs

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.
Odoo Product Inventory Setup

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.
Odoo Inventory Dashboard

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.
ODoo Expense Category

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.

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.


Written by

Bence Toth
Founder of Valkuz