If you have a simple one-step delivery process in Odoo and your product is in stock, but your delivery is still in the "Waiting Another Operation" state, it’s likely that your delivery order is generated by the Replenish on Order (MTO) route.

The MTO route is typically used when each order that creates demand from stock needs to be directly linked to an order that supplies the stock. This creates a strong connection between the order and procurement, making it easier to track the product and its related processes.

To enable the MTO route, you will need to:

  1. Enable the Multi-Routes​ option from Inventory > Configuration > Settings​.
  2. Navigate to Inventory > Configuration > Routes​.
  3. Filter for Archived​, locate the MTO route, and unarchive it.

Once this is done, the MTO route will be available for selection on individual products.

It is important to note that when using the MTO route, even if a product is available in stock, the system will always generate a procurement order for it.

The MTO route always triggers another rule, so for it to work properly, it must be part of a process where another rule is triggered afterward. This is why the MTO route is usually combined with the Buy or Manufacture routes, depending on whether the product is purchased or produced.

While the MTO route can be convenient for products that require strong traceability, especially for high-end or expensive items that should not be kept in stock for long periods, it can be too restrictive for smaller components. In those cases, other replenishment options, such as Reordering Rules, might be more practical and efficient.

Posts

In Odoo, you can simplify your sales process by using Quotation Templates. The templates streamline repetitive tasks, making it easier and faster to create sales orders.

Quotation templates can be accessed via Configuration > Sales Orders > Quotation Templates​. A new template can be created by clicking the “New” button.

Each template can include:

  • List of Products/Services: Predefined items typically sold together.
  • Quotation Validity: Number of days the quote is valid from its creation date.
  • Confirmation Mail: Email template sent upon quote confirmation.
  • Company: If the template is company-specific, the company must be set.
  • Invoicing Journal: Custom journal for the sales order. If left empty, the default journal will be used.
  • Quote Calculator: Links to a Sales Order Spreadsheet Template.
  • Online Signature: Option to require a digital signature for confirmation.
  • Online Payment: If selected, the quote can only be confirmed online when the requested percentage of the payment is made.
  • Recurring Plan: Available if the subscription option is enabled. Extra fields used to specify the recurring plan are Last Forever and End After.

Additional features include the ability to suggest optional products with the existing quote and to define custom terms and conditions.

Lastly, but not least, is the Quote Builder, which is used to enhance the visual presentation of the quote and include additional information. Multiple templates can be specified and combined in the print version of the quote. This option is available only if the PDF Quote Builder​ feature is enabled in the sales configuration settings.

Once the template is set up, creating a sales order is simple: select the customer and the relevant template, and all details will be automatically populated.

Functional Odoo 18 Sales
Posts


In Odoo, you can configure default subscription settings to ensure that every new follower added to a document (e.g., Sales Order, Invoice, Task) will receive certain notifications by automatically subscribing them to specific subtypes. To set this up:

  1. Go to Settings > Technical > Discuss > Subtypes​ (Developer Mode required).
  2. Group the records by Model​.
  3. Locate the model where the subtypes need to be updated (e.g., Sales Order).
  4. Expand the group and click on the specific Subtype.
  5. Select the Default​ option.

Save your changes, and from now on, any new follower added to that document type (e.g., Sales Order) will automatically be subscribed to the subtypes marked as default. If you want to remove the default subscription, simply uncheck the Default​ option for that subtype.

Additionally, if a partner is already added as a follower to a document, you can customize their subscription settings. There are two ways to update these settings:

  1. From the document: Open the document, click on Followers​, and use the edit icon next to the follower's name to modify their subscription preferences.
  2. From the Technical settings: Go to Settings > Technical > Discuss > Followers​, search for the follower using filters like Related Document Model Name​, Related Document ID​, or Related Partner​, and update the Subtype​ field. (Developer Mode is required for this method.)

The first method is ideal for quick, individual updates, while the second is better suited for admin management.

Functional Odoo 18
Posts

In manufacturing processes, it is common for one operation to depend on the completion of a previous one. To ensure smooth workflow, it’s crucial to make sure that dependent operations are only started after their prerequisites are completed.

In Odoo, this setup can be configured in a few steps using Work Order Dependencies feature:

  1. Go to the configuration page in Manufacturing: Manufacturing > Configuration > Settings > Operations​, and enable the option Work Order Dependencies​.
  2. Navigate to the specific Bill of Materials (BoM) where you want to apply this setup. In the Miscellaneous tab, enable the Operation Dependencies​setting.
  3. Open the Operations tab of the BoM. Click on the operation that depends on another operation and use the Blocked By​ field to specify the required prerequisite operation(s). An operation can depend on multiple operations, if necessary.
  4. For better visibility, make the Blocked By​ field available in the Operations tab. This helps to provide a clear overview of the dependencies.

Once these changes are saved, any new manufacturing order created for the configured BoM will enforce the operation dependencies. Operations will remain in the state “Waiting for another WO” until all specified prerequisite operations are completed.

It is important to note that on the Shop Floor Control Panel, these dependencies are strictly enforced, ensuring smooth operation flow. In other views, however, operations are in a different state upon order confirmation but can still be started and completed even if their prerequisites are not finished.

Posts

Do you need to create timesheets for each employee’s Time Off in Odoo? You can enable this functionality in just a few steps:

  1. Navigate to Timesheets > Configuration > Settings > Time Off.
  2. Select the option Time Off​.
  3. Choose a Project and Task to log Time Off timesheets.

Once set up, this feature is automatically enabled for all Time Off Types. However, it can be customized per Time Off Type.

To update the feature for a specific Time Off Type, open the Time Off Type form view. You can access it via Time Off > Configuration > Time Off Types > Select a specific record​. In the form view, locate the Timesheets​ section.

The configuration differs depending on whether a company is selected for the Time Off Type:

  1. No company selected:
    • Use the Generate Timesheets​ checkbox to enable or disable the functionality.
    • The Project and Task settings from the main Timesheet configuration are applied.
  2. Company selected:
    • Project and Task selection fields are available. By default, the Project and Task from the main Timesheet configuration are applied.
    • If no Project and Task are defined, the functionality is considered disabled.

The timing of when timesheets are created depends on the Time Off Type Approval setting:

  • No approval required: Timesheets are generated when the Time Off is created.
  • Approval required: Timesheets are generated once the Time Off is approved.

Possible Improvements: Using different ways to disable the feature for Time Off Types might cause confusion for users. It would be helpful if Odoo standardized this process. For example, keeping the Generate Timesheets​ checkbox for all scenarios and only displaying the Project and Task fields when a company is selected could make the configuration more intuitive.

Functional HR Odoo 18
Posts

Managing a high volume of leads can be challenging, especially when you need to assign them to different sales teams or salespeople based on specific conditions. Did you know that Odoo can automate this process for you with its Rule-Based Assignment feature?

Here’s a simple step-by-step guide to set it up:

  1. Open the CRM settings page using the menu: CRM > Configuration > Settings​.
  2. Activate the Rule-Based Assignment​ option in the settings.
  3. Choose the Running option as "Repeatedly" and set the interval for how often the system should check and assign leads. For example, you can schedule it to run every hour, once a day, or at a frequency that suits your business needs.

Once the feature is activated, you will need to define specific assignment rules for each sales team or salesperson. The configuration steps are very similar for both and generally consist of:

  1. Go to CRM > Configuration > Sales Teams (or Team Members) and select a record.
  2. In the Assignment Rules section, click on the Add Condition button.
  3. Use the Edit Domain button to define the assignment criteria. These conditions can be based on any field in the lead model, such as location, industry, or lead priority.

If you want to exclude a particular sales team or salesperson from auto-assignment, enable the Skip auto-assignment option for them.

A few things to consider:

  1. The auto-assignment is performed only for leads that are not already assigned to a sales team or salesperson.
  2. The maximum number of leads that can be assigned per day to a salesperson is calculated as the monthly maximum divided by 30.
  3. To ensure that salespersons are assigned the appropriate leads, you need to set specific assignment rules for each of them.
CRM Functional Odoo 18
Posts


Do you have multiple documents that you would like to follow? Or maybe too many documents you were added as a follower of, creating excessive notifications you would like to stop?

By default in Odoo, you need to go through each document individually and click Follow / Unfollow, which can be a time-consuming process.

Here are two server actions that will allow you to Follow or Unfollow multiple documents at once.

To set up the Follow action, use the following steps:

  1. Go to Settings > Technical > Actions > Server Actions​ (Developer mode is required) and click on New
  2. Add the name of the action. In our case, it is “Follow Selected Orders”.
  3. Select Execute Code​.
  4. Select the Model​ where the action should be available. In our case, it is Sales Order.
  5. If you want the action to be available only for certain access groups, select the groups in the Allowed Groups​ field.
  6. In the Code​ section, add the following code:
records.message_subscribe(partner_ids=env.user.partner_id.ids)

Save the action and click the Create Contextual Action​ button. This will create the menu Follow Selected Orders in the Action menu of the Sales Order model.

Now, if you go to the Sales Order list view, select multiple sales orders, and click on Follow Selected Orders​, it will add you as a follower of the selected sales orders.

In general, when executed, this action will add the currently logged-in user as a follower of the selected documents.

The same action can be applied to other documents. The only difference in setup is the Model​. For example, for Purchase Orders, you need to select the Purchase Order model.

To create the Unfollow action, follow the same steps as above. The only change is that in the Code​ section, you need to add the following code:

records.message_unsubscribe(partner_ids=env.user.partner_id.ids)
Functional Odoo 17 Odoo 18
Posts



Do you have products that are sold as one item but consist of multiple parts needing assembly? For example, an office desk is sold as a single product but delivered in separate components, such as table legs, screws, and a tabletop.

In such cases, it may be expected for customers to select the main product during checkout, while each component is shown separately on the delivery document. This setup is common for furniture and similar industries, where the final product is made up of individually managed items.

In Odoo, this scenario can be handled by using the Manufacturing module and defining a Bill of Materials (BoM) of type Kit for each main product.

Here is a step-by-step guide to set up the flow:

  1. Create the Main Product:
    • Set the product type to Goods.
    • Disable Track Inventory.
    • Assign the Manufacturing route to it.
  2. Create Component Products:
    • Each component should be a separate product.
    • Set the type to Goods.
    • Enable Track Inventory.
    • Assign the Buy route (unless they are produced in-house).
  3. Define the BoM:
    • Create a Bill of Materials (BoM) of type Kit for the main product.
    • Include all components that are part of the main product with appropriate quantities.

Once set up, this configuration allows the system to track stock at the component level, calculate the main product’s availability based on its components, and show only the main product in the sales order. While in the delivery document, all components are listed, making it clear what needs to be shipped.

Although the main product has the Manufacturing route, a manufacturing order is not created. Instead, the BoM is used solely to display the components that make up the product in the delivery order.

Functional Inventory Manufacturing Odoo 18
Posts