diff --git a/content/applications/inventory_and_mrp/inventory/management/products/strategies.rst b/content/applications/inventory_and_mrp/inventory/management/products/strategies.rst index 234c6df44..b5d2edc3d 100644 --- a/content/applications/inventory_and_mrp/inventory/management/products/strategies.rst +++ b/content/applications/inventory_and_mrp/inventory/management/products/strategies.rst @@ -1,75 +1,198 @@ -============================================== -How to select the right replenishment strategy -============================================== +================================== +Selecting a replenishment strategy +================================== -Minimum Stock rules and Make to Order have similar consequences but -different rules. They should be used depending on your manufacturing and -delivery strategies. +.. |MTO| replace:: :abbr:`MTO (Make to Oder)` +.. |PO| replace:: :abbr:`PO (Purchase Order)` +.. |MO| replace:: :abbr:`MO (Manufacturing Order)` +.. |SO| replace:: :abbr:`SO (Sales Order)` + +In Odoo, there are two strategies for automatically replenishing inventory: *reordering rules* and +the *make to order (MTO)* route. Although these strategies differ slightly, they both have similar +consequences: triggering the automatic creation of a |PO| or |MO|. The choice of which strategy to +use depends on the business's manufacturing and delivery processes. Terminology =========== -Minimum stock rule ------------------- +Replenishment report and reordering rules +----------------------------------------- -Minimum Stock rules are used to ensure that you always have the minimum -amount of a product in stock in order to manufacture your products -and/or answer to your customer needs. When the stock level of a product -reaches its minimum the system will automatically generate a procurement -order with the quantity needed to reach the maximum stock level. +The replenishment report is a list of all products that have a negative forecast quantity. -Make to Order +*Reordering rules* are used to ensure there's always a minimum amount of a product in-stock, in +order to manufacture products and/or fulfill sales orders. When the stock level of a product reaches +its minimum, Odoo automatically generates a purchase order with the quantity needed to reach the +maximum stock level. + +Reordering rules can be created and managed in the replenishment report, or from the product form. + +Make to order ------------- -The Make to Order function will trigger a Purchase Order of the amount -of the Sales Order related to the product. The system will **not** check -the current stock. This means that a draft purchase order will be -generated regardless of the quantity on hand of the product. +*Make to order (MTO)* is a procurement route that creates a draft purchase order (or manufacturing +order) each time a sales order is confirmed, **regardless of the current stock level**. + +Unlike products replenished using reordering rules, Odoo automatically links the sales order to the +|PO| or |MO| generated by the |MTO| route. + +Another difference between reordering rules and |MTO| is, with |MTO|, Odoo generates a draft |PO| or +|MO| immediately after the |SO| is confirmed. With reordering rules, Odoo generates a draft |PO| or +|MO| when the product's forecasted stock falls below the set minimum quantity. + +In addition, Odoo automatically adds quantities to the |PO| or |MO| as the forecast changes, so long +as the |PO| or |MO| is not confirmed. + +The |MTO| route is the best replenishment strategy for products that are customized, and/or for +products that have no stock kept on-hand. + Configuration ============= -Minimum stock rules -------------------- +Replenishment report and reordering rules +----------------------------------------- -The Minimum Stock Rules configuration is available through your -Inventory module. In the Inventory Control menu select "Reordering Rule" -in the drop down menu. There, click on "Create" to set minimum and -maximum stock values for a given product. +To access the replenishment report, go to :menuselection:`Inventory app --> Operations --> +Replenishment.` -.. image:: strategies/strategies01.png - :align: center +By default, the replenishment report dashboard shows every product that needs to be manually +reordered. If there is no specific rule for a product, Odoo assumes the :guilabel:`Min Quantity` and +:guilabel:`Max Quantity` stock are both `0.00` .. note:: - Show tooltips for "minimum quantity", "maximum quantity" and "quantity multiple" fields + For products that don't have a set reordering rule, Odoo calculates the forecast based on + confirmed sales orders, deliveries, and receipts. For products that have a set reordering rule, + Odoo calculates the forecast normally, but also takes into account the purchase/manufacturing + lead time and security lead time. -Then, click on your product to access the related product form and, on -the "Inventory submenu", do not forget to select a supplier. +.. important:: + Before creating a new reordering rule, make sure the product has a *vendor* or a *bill of + materials* configured on the product form. To check this, go to :menuselection:`Inventory app + --> Products --> Products`, and select the product to open its product form. The vendor, if + configured, is listed in the :guilabel:`Purchase` tab, and the bill on materials, if configured, + is found in the :guilabel:`Bill of Materials` smart button at the top of the form. -.. image:: strategies/strategies02.png + The :guilabel:`Product Type`, located in the :guilabel:`General Information` tab on the product + form, **must** be set to :guilabel:`Storable Product`. By definition, a consumable product does + not have its inventory levels tracked, so Odoo cannot account for a consumable product in the + replenishment report. + +.. image:: strategies/replenishment-report-dashboard.png :align: center + :alt: Replenishment report listing all items needing to be purchased to meet current needs. -.. tip:: - Don't forget to select the right product type. A consumable can not be stocked and will thus not - be accounted for in the stock valuation. +To create a new reordering rule from the replenishment report, go to :menuselection:`Inventory app +--> Operations --> Replenishment`, click :guilabel:`Create`, and select the desired product from the +drop-down menu in the :guilabel:`Product` column. If necessary, a :guilabel:`Min Quantity` and a +:guilabel:`Max Quantity` can be configured in the corresponding columns on the +:guilabel:`Replenishment` report page, as well. -Make to Order -------------- +To create a new reordering rule from the product form, go to :menuselection:`Inventory app --> +Products --> Products`, and select a product to open its product form. Click the +:guilabel:`Reordering Rules` smart button, click :guilabel:`Create`, and fill out the fields. -The Make to Order configuration is available on your product form -through your :menuselection:`Inventory --> Inventory control --> Products` (or any -other module where products are available). +Replenishment report fields +~~~~~~~~~~~~~~~~~~~~~~~~~~~ -On the product form, under Inventory, click on "Make To Order". +The following fields are on the :guilabel:`Replenishment` report. If any of these fields are not +visible, click the :guilabel:`⋮ (additional options)` icon on the far right side of the report, then +click the checkbox next to a field to make it visible. -.. image:: strategies/strategies03.png +- :guilabel:`Product`: the product that requires a replenishment. +- :guilabel:`Location`: the specific location where the product is stored. +- :guilabel:`Warehouse`: the warehouse where the product is stored. +- :guilabel:`On Hand`: the amount of product currently available. +- :guilabel:`Forecast`: the amount of product available after all current orders (sales, + manufacturing, purchase, etc.) are taken into account. +- :guilabel:`Preferred Route`: how the product is procured, either :guilabel:`Buy`, + :guilabel:`Manufactured`, :guilabel:`Dropship`, etc. +- :guilabel:`Vendor`: the company from which the product is acquired. +- :guilabel:`Bill of Materials`: the bill of materials for the product (if one is configured). +- :guilabel:`Trigger`: how the replenishment is created, either :guilabel:`Auto` (automatically, + once the :guilabel:`On Hand` quantity goes below the :guilabel:`Min Quantity`) or + :guilabel:`Manual` (only when the replenishment is requested). +- :guilabel:`Procurement Group`: the reference number for how the product is being acquired, such as + a sales order, purchase order, or manufacturing order. +- :guilabel:`Min Quantity`: the minimum amount of product that should be available. When inventory + levels goes below this number, the replenishment is triggered. +- :guilabel:`Max Quantity`: the amount of product that should be available after replenishing the + product. +- :guilabel:`Multiple Quantity`: if the product should be ordered in specific quantities, enter the + number that should be ordered. For example, if the :guilabel:`Multiple Quantity` is set to `5`, + and only 3 are needed, 5 products are replenished. +- :guilabel:`To Order`: the amount of product that is currently needed, and will be ordered, if the + :guilabel:`Order Once` or :guilabel:`Automate Orders` button is clicked. +- :guilabel:`UoM`: the unit of measure used to acquire the product. +- :guilabel:`Company`: the company for which the product is acquired. + +By default, the quantity in the :guilabel:`To Order` field is the quantity required to reach the set +:guilabel:`Max Quantity`. However, the :guilabel:`To Order` quantity can be adjusted by clicking on +the field and, changing the value, and clicking :guilabel:`Save`. To replenish a product manually, +click :guilabel:`Order Once`. + +To automate a replenishment from the :guilabel:`Replenishment` page, click :guilabel:`Automate +Orders` on the right-side of the line, represented by a :guilabel:`🔄 (circular arrow)` icon. + +When this button is clicked, Odoo will automatically generate a draft |PO|/|MO| every time the +forecasted stock level falls below the set :guilabel:`Min Quantity` of the reordering rule. + +On the :guilabel:`Replenishment` page, a reordering rule or manual replenishment can be temporarily +deactivated for a given period, by clicking the :guilabel:`🔕 (snooze)` icon on the far-right of the +line. + +.. image:: strategies/reordering-rule-snooze-settings.png :align: center + :alt: Snooze options to turn off notifications for reordering for a period of time. -Choice between the two options ------------------------------- +A |PO| or |MO| created by a manual replenishment has a :guilabel:`Replenishment Report` as the +source document. A |PO| or |MO| created by an automated reordering rule has the |SO| reference +number(s) that triggered the rule as the source document. -The choice between the two options is thus dependent of your inventory -strategy. If you prefer to have a buffer and always have at least a -minimum amount, the minimum stock rule should be used. If you want to -reorder your stocks only if your sale is confirmed it is better to use -the Make to Order. +.. image:: strategies/rfq-source-document.png + :align: center + :alt: Quote request list shows which quotes are directly from the replenishment report. + +Make to order (MTO) route +========================= + +Since the |MTO| route is recommended for customized products, the route is hidden by default. + +To activate the |MTO| route in Odoo: + #. Go to :menuselection:`Inventory app --> Configuration --> Settings`. + #. Activate the :guilabel:`Multi-Step Routes` setting, located under the :guilabel:`Warehouse` + section, and click :guilabel:`Save`. + #. Then, go to :menuselection:`Inventory app --> Configuration --> Routes`. + #. Click on :menuselection:`Filters --> Archived` to show archived routes. + #. Select the checkbox next to :guilabel:`Replenish on Order (MTO)`, and click on + :menuselection:`Action --> Unarchive`. + +.. note:: + Activating the :guilabel:`Multi-Step Routes` setting also activates :guilabel:`Storage + Locations`. If these features aren't applicable to the warehouse, disable these settings after + unarchiving the |MTO| route. + +To set a product's procurement route to |MTO|, go to :menuselection:`Inventory app --> Products --> +Products`, click on the desired product to open its product form, and click :guilabel:`Edit`. + +Then, click the :guilabel:`Inventory` tab, and in the :guilabel:`Routes` section of options, select +:guilabel:`Replenish on Order (MTO)`. + +For products purchased directly from a vendor, make sure the :guilabel:`Buy` route is selected, in +addition to the :guilabel:`Replenish on Order (MTO)` route. Also, make sure a vendor is configured +in the :guilabel:`Purchase` tab of the product form. + +For products manufactured in-house, make sure the :guilabel:`Manufacture` route is selected, in +addition to the :guilabel:`Replenish on Order (MTO)` route. Also, make sure a bill of materials is +configured for the product, which is accessible via the :guilabel:`Bill of Materials` smart button +on the product form. + +Finally, when all configurations are complete, click :guilabel:`Save`. + +.. note:: + The |MTO| route cannot be selected alone. |MTO| **only** works if the :guilabel:`Manufacture` or + :guilabel:`Buy` route is also selected. + +.. image:: strategies/acoustic-block-screen-replenish.png + :align: center + :alt: Replenish on Order selected on the product form. diff --git a/content/applications/inventory_and_mrp/inventory/management/products/strategies/acoustic-block-screen-replenish.png b/content/applications/inventory_and_mrp/inventory/management/products/strategies/acoustic-block-screen-replenish.png new file mode 100644 index 000000000..f68a2065f Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/strategies/acoustic-block-screen-replenish.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/strategies/reordering-rule-snooze-settings.png b/content/applications/inventory_and_mrp/inventory/management/products/strategies/reordering-rule-snooze-settings.png new file mode 100644 index 000000000..36c7521ce Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/strategies/reordering-rule-snooze-settings.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/strategies/replenishment-report-dashboard.png b/content/applications/inventory_and_mrp/inventory/management/products/strategies/replenishment-report-dashboard.png new file mode 100644 index 000000000..f7810a5ed Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/strategies/replenishment-report-dashboard.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/strategies/rfq-source-document.png b/content/applications/inventory_and_mrp/inventory/management/products/strategies/rfq-source-document.png new file mode 100644 index 000000000..cbbd474a5 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/strategies/rfq-source-document.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/strategies/strategies01.png b/content/applications/inventory_and_mrp/inventory/management/products/strategies/strategies01.png deleted file mode 100644 index f0c4bc939..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/management/products/strategies/strategies01.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/strategies/strategies02.png b/content/applications/inventory_and_mrp/inventory/management/products/strategies/strategies02.png deleted file mode 100644 index 8619e7eea..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/management/products/strategies/strategies02.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/strategies/strategies03.png b/content/applications/inventory_and_mrp/inventory/management/products/strategies/strategies03.png deleted file mode 100644 index e4e310ac7..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/management/products/strategies/strategies03.png and /dev/null differ