Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,27 @@ Replenish on order (MTO)
.. |BOM| replace:: :abbr:`BOM (bill of materials)`

*Replenish on order*, also known as *MTO* (make to order), is a replenishment strategy that creates
a draft order for a product every time it is required to fulfill a sales order (SO), or when it is
needed as a component in a manufacturing order (MO).
a draft order every time a product is needed to fulfill a sales order (SO) or as a component in a
manufacturing order (MO).

For products that are purchased from a vendor, a request for quotation (RFQ) is created to replenish
the product, while an |MO| is created for products that are manufactured. The creation of an |RFQ|
or |MO| occurs every time an |SO| or |MO| that requires the product is confirmed, regardless of the
current stock level of the product being ordered.
- For :doc:`purchased products <../../../purchase/manage_deals/rfq>`, Odoo creates a |RFQ|
- For :doc:`manufactured products
<../../../manufacturing/basic_setup/configure_manufacturing_product>`, it creates a |MO|

If stock is available, no |RFQ| or |MO| is generated and the sale proceeds normally. Otherwise, the
|RFQ| or |MO| is generated and directly linked to the originating |SO| through a smart button.

This approach offers clear traceability, since each |RFQ| or |MO| is tied back to its demand.

.. important::
In order to use the |MTO| route, the :guilabel:`Multi-Step Routes` feature must be enabled. To do
so, navigate to :menuselection:`Inventory app --> Configuration --> Settings`, and tick the
checkbox next to :guilabel:`Multi-Step Routes`, under the :guilabel:`Warehouse` heading.
The |RFQ| or |MO| generated by |MTO| is designed to fulfill the originating |SO|. These documents
should normally be confirmed or adjusted rather than cancelled. If the demand changes, update the
document instead of cancelling it.

.. note::
If an |RFQ| or |MO| is cancelled, Odoo does not automatically generate a replacement. A new
replenishment document must be created manually, but it **cannot** be linked back to the original
|SO| through the smart button.

Finally, click :guilabel:`Save` to save the change.

Expand All @@ -31,6 +40,10 @@ current stock level of the product being ordered.
Unarchive MTO route
===================

In order to use the |MTO| route, the :guilabel:`Multi-Step Routes` feature must be enabled. To do
so, navigate to :menuselection:`Inventory app --> Configuration --> Settings`, and tick the checkbox
next to :guilabel:`Multi-Step Routes`, under the :guilabel:`Warehouse` heading.

By default, Odoo sets the |MTO| route as *archived*. This is because |MTO| is a somewhat niche
workflow that is only used by certain companies. However, it is easy to unarchive the route in just
a few simple steps.
Expand Down Expand Up @@ -121,10 +134,11 @@ Click :guilabel:`Confirm`, and the quotation is turned into an |SO|.
A :guilabel:`Purchase` smart button now appears at the top of the page. Clicking it opens the |RFQ|
associated with the |SO|.

Click :guilabel:`Confirm Order` to confirm the |RFQ|, and turn it into a |PO|. A purple
:guilabel:`Receive Products` button now appears above the |PO|. Once the products are received,
click :guilabel:`Receive Products` to open the receipt order, and click :guilabel:`Validate` to
enter the products into inventory.
After receiving approval from the vendor that they can meet the demand by the :guilabel:`Expected
Arrival` date, click :guilabel:`Confirm Order` to turn it into a |PO|. A purple :guilabel:`Receive
Products` button now appears above the |PO|. Once the products are received, click
:guilabel:`Receive Products` to open the receipt order, and click :guilabel:`Validate` to enter the
products into inventory.

Return to the |SO| by clicking the :guilabel:`SO` breadcrumb, or by navigating to
:menuselection:`Sales app --> Orders --> Orders`, and selecting the|SO|.
Expand All @@ -133,6 +147,14 @@ Finally, click the :guilabel:`Delivery` smart button at the top of the order to
order. Once the products have been shipped to the customer, click :guilabel:`Validate` to confirm
the delivery.

Cancelling an SO with an MTO product
------------------------------------

When a |SO| is cancelled, and it had created an |RFQ| or |MO|, the related delivery order is
cancelled automatically. However, the |RFQ| or |MO| themselves are **not** cancelled. Instead, a
warning appears in their chatter noting the |SO| cancellation. These documents remain active, so the
user can either cancel them manually or repurpose the replenishment for another order.

.. seealso::
For information on workflows that include the |MTO| route, see the following documentation:

Expand Down