diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst index 031a86cf3..d33e3a970 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst @@ -26,6 +26,8 @@ current stock level of the product being ordered. Finally, click :guilabel:`Save` to save the change. +.. _inventory/warehouses_storage/unarchive-mto: + Unarchive MTO route =================== diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst index aa7e320a7..fd51887fc 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst @@ -95,6 +95,8 @@ For advanced usage of reordering rules, learn about the following reordering rul - :ref:`Visibility days ` - :ref:`Route ` +.. _inventory/warehouses_storage/zero-zero: + 0/0/1 reordering rule --------------------- diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses.rst index a7d776d3f..51fc61a93 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses.rst @@ -1,70 +1,172 @@ -=============================== -Resupply from another warehouse -=============================== +============================= +Inter-warehouse replenishment +============================= -A common use case for multiple warehouses is to have one central warehouse that resupplies multiple -shops, and in this case, each shop is considered a local warehouse. When a shop wants to replenish -a product, the product is ordered to the central warehouse. Odoo allows the user to easily set -which warehouse(s) can resupply another warehouse. +.. |MTO| replace:: :abbr:`MTO (Make to Order)` + +When a business operates multiple locations, such as warehouses, retail shops, or manufacturing +facilities, resupplying stock from a central warehouse is sometimes necessary. Odoo uses a *Route* +configuration that enables locations to replenish from a central distribution center, automatically +generating *inter-warehouse transfers*. Odoo :guilabel:`Inventory` manages these transfers to keep +stores in stock. + +This guide explains how to conduct inter-warehouse transfers using two replenishment strategies: + +#. :ref:`Make to order (MTO) ` +#. :ref:`Reordering rule ` + +.. seealso:: + :doc:`Difference between MTO and reordering rules <../replenishment>` Configuration ============= -To resupply from another warehouse, first go to :menuselection:`Inventory --> Configuration --> -Settings --> Warehouse` and activate :guilabel:`Multi-Step Routes`. Then, click :guilabel:`Save` to -apply the setting. +The initial configuration for both replenishment strategies is the same. First go to +:menuselection:`Inventory app --> Configuration --> Settings`. In the :guilabel:`Warehouse` section, +activate :guilabel:`Storage Locations`. Then, click :guilabel:`Save` to apply the setting. -.. image:: resupply_warehouses/virtual-warehouses-settings.png +.. image:: resupply_warehouses/storage-locations.png :align: center - :alt: Enable Multi-Step Routes in Inventory settings. + :alt: Enable Storage Locations in Inventory settings. -View all the configured warehouses by going to :menuselection:`Inventory --> Configuration --> -Warehouses`. +Warehouses +---------- -Create a new warehouse by clicking :guilabel:`Create`. Then, give the warehouse a name and a -:guilabel:`Short Name`. Finally, click :guilabel:`Save` to finish creating the warehouse. +Configure the settings for the central warehouse and connecting storage locations by going to +:menuselection:`Inventory app --> Configuration --> Warehouses`. -After that, go back to the :guilabel:`Warehouses` page and open the warehouse that will be -resupplied by the second warehouse. Then, click :guilabel:`Edit`. In the :guilabel:`Warehouse -Configuration` tab, locate the :guilabel:`Resupply From` field, and check the box next to the -second warehouse's name. If the warehouse can be resupplied by more than one warehouse, make sure -to check those warehouses' boxes too. Finally, click :guilabel:`Save` to apply the setting. Now, -Odoo knows which warehouses can resupply this warehouse. +.. important:: + Each central warehouse and other locations *must* have its own warehouse. For example, each shop + is considered a local warehouse. -.. image:: resupply_warehouses/resupply-from-second-warehouse.png +Select an existing warehouse, or create a new one to be resupplied from the central warehouse, by +clicking :guilabel:`New`. Then, give the warehouse a name and a :guilabel:`Short Name`, which will +appear on that warehouse's transfers. + +In the :guilabel:`Warehouse Configuration` tab, locate the :guilabel:`Resupply From` field. Check +the box next to the central warehouse's name. If the warehouse can be resupplied by more than one +warehouse, make sure to check those warehouses' boxes too. Now, Odoo knows which warehouses can +resupply this warehouse. + +.. example:: + The central warehouse that will supply the shops is called `Central warehouse`. The + :guilabel:`Resupply From` field is set to this warehouse on the shop's warehouse configuration + page. + +.. seealso:: + :doc:`../inventory_management/warehouses` + +.. image:: resupply_warehouses/warehouse.png :align: center :alt: Supply one warehouse with another in the Warehouse Configuration tab. Set route on a product -====================== +---------------------- -After configuring which warehouse(s) to resupply from, a new route is now available on all product -forms. The new route appears as :guilabel:`Supply Product from [Warehouse Name]` under the -:guilabel:`Inventory` tab on a product form. Use the :guilabel:`Supply Product from [Warehouse -Name]` route with a reordering rule or the make to order (MTO) route to replenish stock by moving -the product from one warehouse to another. +Products must also be configured properly in order for them to be transferred between warehouses. -.. image:: resupply_warehouses/product-resupply-route-settings.png - :align: center - :alt: Route setting which enables a product to resupplied from a second warehouse. +Go to :menuselection:`Inventory app --> Products --> Products` and select the desired product. -When a product's reordering rule is triggered and the product has the :guilabel:`Supply Product -from [Warehouse Name]` route set, Odoo automatically creates two pickings. One picking is a -*delivery order* from the second warehouse, which contains all the necessary products, and the -second picking is a *receipt* with the same products for the main warehouse. The product move from -the second warehouse to the main warehouse is fully tracked in Odoo. +In the :guilabel:`Inventory` tab, the new route appears as :guilabel:`X: Supply Product from Y` in +the :guilabel:`Routes` section, where 'X' is the store's warehouse that receives products, and 'Y' +is the warehouse that sends products. -On the picking/transfer records created by Odoo, the :guilabel:`Source Document` is the product's -reordering rule. The location between the delivery order and the receipt is a transit location. +Tick the :guilabel:`X: Supply Product from Y` checkbox, which is intended to be used with the |MTO| +route or a reordering rule to replenish stock by moving the product from one warehouse to another. +Proceed to the dedicated sections below to continue the process. -.. image:: resupply_warehouses/resupply-receipts-from-reordering-rule.png - :align: center - :alt: A reordering rule automatically creates two receipts for stock between warehouses. +.. _inventory/warehouses_storage/MTO: -.. image:: resupply_warehouses/second-warehouse-delivery-order.png - :align: center - :alt: A warehouse order for resupplying one warehouse's stock with another. +MTO +~~~ + +To replenish products using the make-to-order method, go to the product form and ensure the +:ref:`MTO route is unarchived `, so it appears in the +:guilabel:`Routes` section of the :guilabel:`Inventory` tab. + +With the resupply and |MTO| routes ticked, jump to the section titled: :ref:`Replenish from another +warehouse `. + +.. example:: + The product, sold at the warehouse, `Store`, is resupplied from the central warehouse, named + `YourCompany`. To replenish the product using |MTO|, the following routes are selected: + + - :guilabel:`Store: Supply Product from YourCompany` + - :guilabel:`Replenish on Order (MTO)` + + .. image:: resupply_warehouses/resupply-route.png + :align: center + :alt: Route setting which enables a product to resupplied from a second warehouse. + +.. _inventory/warehouses_storage/reordering-rule: + +Reordering rule +~~~~~~~~~~~~~~~ + +To replenish products using reordering rules, first ensure the :guilabel:`X: Supply Product from Y` +route is selected in the :guilabel:`Inventory` tab of the product form. + +Then, create a reordering rule to automate replenishment by clicking the :guilabel:`Reordering +Rules` smart button. + +Click :guilabel:`New`, and set: + +- :guilabel:`Location`: the stock location of the retail store. For example, `SHOP/Stock`. +- :guilabel:`Route`: :guilabel:`X: Supply Product from Y`. +- :guilabel:`Min Quantity` and :guilabel:`Max Quantity` to trigger automatic stock transfers when + inventory falls below the set threshold. + +.. seealso:: + :doc:`reordering_rules` + +.. example:: + A :ref:`0/0 reordering rule ` to replenish the shop's + warehouse is created, with the :guilabel:`Location` set to `SHOP/Stock`, and the + :guilabel:`Route` set to :guilabel:`Store: Resupply from YourCompany`. + + .. image:: resupply_warehouses/reordering-rule.png + :align: center + :alt: Show reordering rule configurations. + +.. _inventory/warehouses_storage/resupply-workflow: + +Replenish one warehouse from another +==================================== + +After completing the setup, trigger replenishment using one of several methods, such as: + +- Navigate to the product form of the product that is resupplied from another warehouse. + + Click the :guilabel:`Replenish` button on the top-left of the product page. In the pop-up window, + set the warehouse to the retail shop, (e.g. `Store`), and click :guilabel:`Confirm`. + + .. image:: resupply_warehouses/replenish.png + :align: center + :alt: Replenish pop-up window on the product form. + +- Create a quotation, and in the :guilabel:`Other Info` tab, set the :guilabel:`Warehouse` to the + retail shop (e.g. `Store`), when selling the product makes the on-hand quantity of the product go + below the minimum set on the reordering rule. + + .. image:: resupply_warehouses/warehouse-field.png + :align: center + :alt: Create a quote at the store. + +Once triggered, Odoo creates two transfers: One is a *delivery order* from the central, supplying +warehouse, which contains all the necessary products to the store, and the second is a *receipt* at +the shop, from the main warehouse. + +While in transit, the product is located at `Physical Locations/Inter-warehouse transit`. + +.. example:: + A sales order for the product at the shop is created. To replenish the product at the shop and + ship it from there, Odoo generates a delivery order from the central warehouse's stock, + `WH/Stock` to the shop's warehouse `SHOP/Stock`. While the products are traveling between + warehouses, they are in `Physical Locations/Inter-warehouse transit`. + + The final delivery order is from the shop to the customer's delivery address, and is not + pertinent to the workflow in this guide. + + .. image:: resupply_warehouses/transfers.png + :alt: Show shipments from warehouse to store. -.. image:: resupply_warehouses/second-warehouse-stock-receipt.png - :align: center - :alt: A receipt for stock received to one warehouse from another. diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/mto-route.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/mto-route.png new file mode 100644 index 000000000..13c565c43 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/mto-route.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/product-resupply-route-settings.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/product-resupply-route-settings.png deleted file mode 100644 index 1d588fbde..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/product-resupply-route-settings.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/reordering-rule.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/reordering-rule.png new file mode 100644 index 000000000..d161b0ea8 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/reordering-rule.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/replenish.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/replenish.png new file mode 100644 index 000000000..855efc0e9 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/replenish.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/resupply-from-second-warehouse.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/resupply-from-second-warehouse.png deleted file mode 100644 index 20b0118cc..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/resupply-from-second-warehouse.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/resupply-receipts-from-reordering-rule.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/resupply-receipts-from-reordering-rule.png deleted file mode 100644 index cb1a00291..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/resupply-receipts-from-reordering-rule.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/resupply-route.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/resupply-route.png new file mode 100644 index 000000000..842daba3a Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/resupply-route.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/second-warehouse-delivery-order.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/second-warehouse-delivery-order.png deleted file mode 100644 index 220523605..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/second-warehouse-delivery-order.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/second-warehouse-stock-receipt.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/second-warehouse-stock-receipt.png deleted file mode 100644 index 2fcf27f59..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/second-warehouse-stock-receipt.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/storage-locations.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/storage-locations.png new file mode 100644 index 000000000..d2dffc5d8 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/storage-locations.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/transfers.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/transfers.png new file mode 100644 index 000000000..4dde5f145 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/transfers.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/virtual-warehouses-settings.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/virtual-warehouses-settings.png deleted file mode 100644 index 7a4e0e4bc..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/virtual-warehouses-settings.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/warehouse-field.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/warehouse-field.png new file mode 100644 index 000000000..9593d1f04 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/warehouse-field.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/warehouse.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/warehouse.png new file mode 100644 index 000000000..ef6c1dcf8 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses/warehouse.png differ