The Maintenance Product module, part of the OCA (Odoo Community Association) repositories, extends Odoo’s core Maintenance app by linking equipment with products in your database. For companies managing both assets and inventory, this module bridges the gap, making equipment management more structured and efficient. By allowing equipment to inherit product details, it reduces manual entry and ensures consistency across records.

Key features

Once installed, the module introduces a Product​ field in the Equipment form view. To use it effectively, some configuration is required:

  1. Product category setup
    • Each internal product category intended for maintenance must be linked to an Equipment category. Note: When a Product Category is selected, its name will override the Equipment Category name (if one already exists).
  2. Product setup
    • Products must be assigned to a category that is connected to the Equipment category.
    • The checkbox Can be Maintenance​ must be enabled on each product that should be selectable in the equipment form.

How it works in practice

After setup is complete:

  1. Open the Equipment view and click New​.
  2. Select an Equipment Category​.
  3. The Product​ field will display all products flagged as Can be Maintenance​ within that category.
  4. When a product is selected, the following details are automatically copied into the Equipment record:
    • Name
    • First vendor from the product’s vendor list
    • Cost
    • Vendor product code

This process makes equipment creation faster and ensures that equipment records stay aligned with product information already in the database. However, note that any subsequent changes to the product data will not be automatically synced with Equipment records already created.

Potential improvements

A useful enhancement would be to add a Smart Button on the product form that opens a list of all related equipment. This would give users quick visibility into where a product is being used.

Summary

The Maintenance Product module is a simple but effective extension that connects products with equipment in Odoo’s Maintenance app. By leveraging existing product data, it streamlines equipment creation and ensures that newly created equipment records reflect the product information, though subsequent changes to products are not automatically updated.

The latest available version is 18.0.1.0.1.

Functional Maintenance Odoo 17 Odoo 18
Modules Review



The Scheduled Date in a Manufacturing Order (MO) can vary depending on how the MO is created, whether Work Orders (WOs) are generated, and whether the actions “Plan” or “Plan Based on Component Availability” are applied.

Let’s review each scenario step by step.

Default Scheduled Date

The default Scheduled Date depends on how the MO is created:

  • Manually created MO
    When you create an MO manually, the Scheduled Date defaults to the creation date. No calculations are performed based on component availability, Work Orders, or other factors.

  • MO triggered automatically (e.g., from a Sales Order)
    When an MO is generated automatically to fulfill a demand, Odoo sets the Scheduled Date to: 
    Delivery Order Scheduled Date - Manufacturing Lead Time - Manufacturing Security Lead Time (if defined)​.

Actions That Affect the Scheduled Date After Confirmation

Once the MO is confirmed, two manual actions can recalculate the Scheduled Date:

  1. Plan
  2. Plan Based on Component Availability
    • Calculates the Scheduled Date based on the forecasted availability of components.
    • The Scheduled Date is set to the latest date when all required components are available.
    • Each component must have an expected date defined for the calculation to be correct.
    • Important: Make sure expected dates are set on Purchase Orders before confirming them. Updates made afterwards will not be reflected in the MO.

Manufactured Components

If the BoM includes manufactured components, the Scheduled Date for their MOs is calculated as:
Main MO Scheduled Date – Manufacturing Lead Time (child MO) – Manufacturing Security Lead Time (if defined)​.

Understanding how Scheduled Dates are calculated and which actions influence them is essential for designing effective manufacturing and procurement processes. Leveraging Odoo’s standard functionality helps avoid unnecessary customisations, which are often costly to maintain and migrate later.

Functional Manufacturing Odoo 18
Posts

When using the Replenish on Order (MTO) route in Odoo, it is important to understand that a product will always be purchased when there is a demand for it, even if stock is available.

For some companies, this can be a limitation, especially when existing stock should be used first, and only the missing quantity should be purchased.

The Stock MTS+MTO Rule module is designed to handle this scenario. It introduces the Make To Order + Make To Stock​ route, which first reserves available stock and then creates a purchase order only for the difference.

How to Configure

Once the module is installed, you will see a new route in the Routes section. At first, this route has no rules and does nothing. To make it functional, two steps are required:

  1. Activate the Route’s Rules
    Go to Inventory > Configuration > Warehouse​, select the warehouse where you want to use this route, and enable the option: Use MTO+MTS rules​.

  2. Assign the Route to Products
    For the products that should follow this logic, select the Make To Order + Make To Stock​ route along with the Buy​ route.

How the Make To Order + Make To Stock Route Works

Once configured, when demand is created for a product, the system applies the following logic:

  1. If the demand is less than or equal to the forecasted quantity, the product is taken from stock.
  2. If the demand is greater than the forecasted quantity (and the forecasted quantity is positive), available stock is reserved, and a purchase order is created for the missing quantity.
  3. If the forecasted quantity is zero or negative, a purchase order is created for the full required quantity.

Suggested Improvement

One possible improvement for the module would be to automatically archive the Make To Order + Make To Stock​ route when the route's rules are not enabled at the warehouse level. This would prevent confusion, since the route currently appears on products even without rules.

This module is maintained by the Odoo Community Association (OCA). The latest version available is 17.0.1.0.1.


Inventory Odoo 17
Modules Review

If you have created your website using Odoo Online, you might want to use your own custom domain to point to that website.

We typically use Cloudflare for domain management, so this guide will primarily reference Cloudflare. However, the same steps generally apply to other domain providers as well, with minor variations depending on their user interfaces.

Set Up a CNAME Record

To point your domain to Odoo Online, the first step is to configure a CNAME record in your domain manager, Cloudflare in our case.

If you're using Cloudflare:

  1. Log in to your Cloudflare dashboard.
  2. Select your domain.
  3. Go to the DNS​ section in the left-hand menu.
  4. Under Records, click on Add Record​ and enter the following details:
  • Type: CNAME
  • Name: www​ 
  • Target: mydomain.odoo.com
  • Proxy Status: DNS Only

This setup means that www.mydomain.com​ will point to mydomain.odoo.com​, where mydomain.odoo.com​ is the default address you used to access your Odoo instance before setting up a custom domain. Please note that DNS changes may take some time to propagate.

Redirect Root Domain to WWW

To redirect mydomain.com​ (non-www) to your website at www.mydomain.com​, you will need to create a redirect rule in Cloudflare. For this to work, a proxied DNS record is required.

Add an A​ record as follows:

  • Type: A
  • Name: @​ or mydomain.com
  • Target: 192.0.2.1​ 
  • Proxy Status: Proxied

The IP address 192.0.2.1​ is reserved for documentation purposes but is valid in Cloudflare’s configuration. No traffic is actually routed to this IP. Cloudflare will handle the redirection before the traffic reaches that point.

Configure Page Rules

  1. Go to the Rules section in Cloudflare.
  2. Use the Redirect Root to WWW​ template to create a rule that redirects mydomain.com​ to www.mydomain.com​.
  3. Create another rule using the Redirect HTTP to HTTPS​ template to enforce HTTPS.

Alternatively, instead of a rule, you can enable, Always Use HTTPS​. Go to SSL/TLS > Edge Certificates​ and enable the toggle.

Link Your Domain in Odoo

  1. Go to your Odoo Online database.
  2. Click on your database name.
  3. Select Domain Names​.
  4. Click Use My Own Domain​.
  5. Enter www.mydomain.com​ and click Verify​.

If the DNS records are correctly configured and resolved, Odoo will verify the domain. You will then need to wait a short while for Odoo to generate an SSL certificate.

Once the SSL certificate is issued, you can safely set the SSL/TLS encryption mode in Cloudflare to Full (strict)​.

At this point, your website will be accessible from both mydomain.com​ and www.mydomain.com​ .

Odoo 18 Technical Website
Posts

Do you need more control over who can be added as a follower in your system? Whether you want to limit follower selection to a specific group of users or forbid certain partners from becoming followers, either globally or on certain models, the Restrict Follower Selection module from the Odoo Community Association (OCA) provides a powerful and flexible solution.

Main Features

This module allows you to define exactly who can be added as a follower by applying custom domain filters. Key functionalities include:

  1. Filter the selection of available followers.
  2. Restrict follower addition to recipients that meet a defined domain.

Configuration

You can configure the module to apply restrictions globally across the system, or specifically for certain models (like sales orders, tasks, etc.).

Setup Steps:

  1. Enable Developer Mode in Odoo.

  2. Navigate to:
    Settings > Technical > Parameters > System Parameters

  3. Create or edit the parameter:
    mail_restrict_follower_selection.domain

    Set the domain according to your requirements (e.g., to allow only employees to be added as followers).

This applies a global restriction on follower selection across the system.

To apply restrictions only to a specific model, add another system parameter using the format:
mail_restrict_follower_selection.domain.$your_model

For example, to restrict followers on the sale order model the parameter should look like this:
mail_restrict_follower_selection.domain.sale.order

You can combine both global and model-specific filters. Odoo will use the model-specific domain where defined, and fall back to the global domain otherwise.

Example Usage

In case only employees need to be followers across the system. Your global domain might look like: 
[('employee_ids', '!=', False)]

If you need to apply a stricter filter only on Sales Orders, you could set a system parameter: 
mail_restrict_follower_selection.domain.sale.order

with a domain that, for example, allows only users to be followers for sales orders: [('user_ids', '!=', False)]

Important Notes

  • The module does not remove existing followers that don’t meet the domain conditions.
  • Changes to domain filters only affect newly added followers after the update.
  • When using the Add Followers wizard, the system may not apply model-specific domains in the selection popup. This is due to the wizard not always knowing which model it was triggered from.
    • To navigate the issue use a broader global domain and stricter model-specific domains where needed.
    • Even if an unqualified recipient appears in the list and is selected, the system will silently ignore them if they don’t match the specific domain for the model.

The module is maintained by the Odoo Community Association (OCA), with the latest version available: 18.0.1.0.0.

Functional Odoo 18
Modules Review



Have you ever found yourself missing the Cc​ and Bcc​ fields when composing emails in Odoo? If so, the “Email CC and BCC” module by the Odoo Community Association (OCA) is exactly what you need.

Once installed, this module adds both Cc​ and Bcc​ fields to the email composer. It also lets you configure default Cc​ and Bcc​ emails per company, making it easy to include specific recipients in all outgoing emails automatically.

Key Features of the module:

  • Adds Cc​ and Bcc​ fields to the Email Composer
  • Enables default Cc​/Bcc​​ values at the company level
  • Introduces the Bcc​ field in Email Templates, allowing you to set Bcc recipients per template
  • Sends individual emails to each recipient in To(Recipients)​, Cc​, and Bcc​ while maintaining consistent headers
  • Includes a custom X-Odoo-Bcc​ header when Bcc​ is used

The default Cc​/Bcc values are only applied when using the Email Composer not when sending inline messages from Chatter.

If you're using Odoo and want more control over email recipients, this module is worth checking out!  The latest available version is 18.0.1.0.0.

Modules Review

Automating actions when users submit forms on your website can save time and improve efficiency—whether you're capturing leads, creating tasks, or managing email subscriptions.

However, not all website forms trigger automation actions. For example, a standard newsletter form won’t trigger automation rules. Instead, you should use the Form Block​, which offers greater flexibility in field customization, default values, and triggers automation rules.

In this post, we’ll continue with our email sequences automation example from How to Create Fully Automated Email Sequences article, focusing on how to trigger an email sequence immediately after a user subscribes, eliminating the need for scheduled actions.

Step 1: Setting Up the Subscription Form

To ensure automation triggers work, we’ll configure a Form Block​ instead of a basic newsletter block. Here’s how:

  1. Go to your website editor and select the Form Block.
  2. Set the action to "Subscribe to Newsletter."
  3. Customize your form layout.
  4. Define the form fields (e.g., Name and Email), ensuring they are mapped to the correct model fields.
  5. Add the Mailing List​ selection field, if it’s not already included in the form:
    • Set the default value to the list you want (e.g., AI Course).
    • Hide the field if you don’t want users to view or change the list.
  6. Add a specific tag for subscribers from this form:
    1. Add a new field to the form.
    2. Map the field to the Tags​ field in the Mailing Contact​ model.
    3. Set the default tag to be applied on submission (e.g., AI Course).
    4. Hide the field if you don’t want users to modify it.

Now, when users submit this form, they’ll be added to the specified mailing list and tagged with the correct tag.

Step 2: Creating the Automation Rule

Next, we’ll set up an automation rule that triggers when a new subscriber is tagged.

  1. Create a new Automation Rule and set the model to Mail Contact​.

  2. Set the trigger to When a tag is added​ (use the same tag from the form, e.g., "AI Course").

  3. Add additional filters to target the right subscribers—for example, 
    Mailing List Name = AI Course​.

  4. Add two Execute Code​ actions:

  • The first action adds the subscriber to the email sequence:
env["marketing.campaign"].search([
('state', '=', 'running'), ('title', '=', 'AI Mini Course')
]).sync_participants()
  •     The second action triggers the flow instantly:
env["marketing.campaign"].search([
('state', '=', 'running'), ('title', '=', 'AI Mini Course')
]).execute_activities()


Final Thoughts

With this setup a new subscribers are automatically added to your email sequence and the first email is triggered immediately—no waiting for scheduled jobs.

By using Form Blocks​ and automation rules, you can streamline workflows and ensure instant responses to user actions.


Automation Functional Odoo 18 Website
Posts

Want to bring your company's branding into your Odoo interface? Or are you using multi-company mode and looking for a visual distinction between companies? Then the Web Company Color module is exactly what you need.

What does it do

Once installed, the module adds a Company Styles​ tab in the company’s form view, allowing you to customize:

  • Navbar Background Color
  • Navbar Background Color Hover
  • Navbar Text Color
  • Button Background Color
  • Button Background Color Hover
  • Button Text Color
  • Link Text Color
  • Link Text Color Hover

You can also use the Compute colors from logo​ feature to auto-generate the first three colors in the list using your company logo.

Once saved, the page refreshes automatically and applies your new styles.

A couple of notes:

  • Some elements, like buttons or links, may retain the default color in certain views.
  • The app name in the top-left corner uses the link color, which might not always match the rest of the navbar.

Still, this module is an excellent enhancement for anyone looking to personalize or improve multi-company UI in Odoo.

The module is maintained by the Odoo Community Association (OCA), with the latest version available: 18.0.1.0.0.

Functional Odoo 18
Modules Review