[IMP] inventory: merge resupply
closes odoo/documentation#11120 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> Co-authored-by: Liz Bender <92882399+benderliz@users.noreply.github.com> Co-authored-by: Zachary Straub <zst@odoo.com> Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
@ -26,6 +26,8 @@ current stock level of the product being ordered.
|
|||||||
|
|
||||||
Finally, click :guilabel:`Save` to save the change.
|
Finally, click :guilabel:`Save` to save the change.
|
||||||
|
|
||||||
|
.. _inventory/warehouses_storage/unarchive-mto:
|
||||||
|
|
||||||
Unarchive MTO route
|
Unarchive MTO route
|
||||||
===================
|
===================
|
||||||
|
|
||||||
|
@ -95,6 +95,8 @@ For advanced usage of reordering rules, learn about the following reordering rul
|
|||||||
- :ref:`Visibility days <inventory/product_management/visibility-days>`
|
- :ref:`Visibility days <inventory/product_management/visibility-days>`
|
||||||
- :ref:`Route <inventory/product_management/route>`
|
- :ref:`Route <inventory/product_management/route>`
|
||||||
|
|
||||||
|
.. _inventory/warehouses_storage/zero-zero:
|
||||||
|
|
||||||
0/0/1 reordering rule
|
0/0/1 reordering rule
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
|
@ -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
|
.. |MTO| replace:: :abbr:`MTO (Make to Order)`
|
||||||
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
|
When a business operates multiple locations, such as warehouses, retail shops, or manufacturing
|
||||||
which warehouse(s) can resupply another warehouse.
|
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) <inventory/warehouses_storage/MTO>`
|
||||||
|
#. :ref:`Reordering rule <inventory/warehouses_storage/reordering-rule>`
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
:doc:`Difference between MTO and reordering rules <../replenishment>`
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
=============
|
=============
|
||||||
|
|
||||||
To resupply from another warehouse, first go to :menuselection:`Inventory --> Configuration -->
|
The initial configuration for both replenishment strategies is the same. First go to
|
||||||
Settings --> Warehouse` and activate :guilabel:`Multi-Step Routes`. Then, click :guilabel:`Save` to
|
:menuselection:`Inventory app --> Configuration --> Settings`. In the :guilabel:`Warehouse` section,
|
||||||
apply the setting.
|
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
|
: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
|
Configure the settings for the central warehouse and connecting storage locations by going to
|
||||||
:guilabel:`Short Name`. Finally, click :guilabel:`Save` to finish creating the warehouse.
|
:menuselection:`Inventory app --> Configuration --> Warehouses`.
|
||||||
|
|
||||||
After that, go back to the :guilabel:`Warehouses` page and open the warehouse that will be
|
.. important::
|
||||||
resupplied by the second warehouse. Then, click :guilabel:`Edit`. In the :guilabel:`Warehouse
|
Each central warehouse and other locations *must* have its own warehouse. For example, each shop
|
||||||
Configuration` tab, locate the :guilabel:`Resupply From` field, and check the box next to the
|
is considered a local warehouse.
|
||||||
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.
|
|
||||||
|
|
||||||
.. 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
|
:align: center
|
||||||
:alt: Supply one warehouse with another in the Warehouse Configuration tab.
|
:alt: Supply one warehouse with another in the Warehouse Configuration tab.
|
||||||
|
|
||||||
Set route on a product
|
Set route on a product
|
||||||
======================
|
----------------------
|
||||||
|
|
||||||
After configuring which warehouse(s) to resupply from, a new route is now available on all product
|
Products must also be configured properly in order for them to be transferred between warehouses.
|
||||||
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.
|
|
||||||
|
|
||||||
.. image:: resupply_warehouses/product-resupply-route-settings.png
|
Go to :menuselection:`Inventory app --> Products --> Products` and select the desired product.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
.. _inventory/warehouses_storage/MTO:
|
||||||
|
|
||||||
|
MTO
|
||||||
|
~~~
|
||||||
|
|
||||||
|
To replenish products using the make-to-order method, go to the product form and ensure the
|
||||||
|
:ref:`MTO route is unarchived <inventory/warehouses_storage/unarchive-mto>`, 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 <inventory/warehouses_storage/resupply-workflow>`.
|
||||||
|
|
||||||
|
.. 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
|
:align: center
|
||||||
:alt: Route setting which enables a product to resupplied from a second warehouse.
|
:alt: Route setting which enables a product to resupplied from a second warehouse.
|
||||||
|
|
||||||
When a product's reordering rule is triggered and the product has the :guilabel:`Supply Product
|
.. _inventory/warehouses_storage/reordering-rule:
|
||||||
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.
|
|
||||||
|
|
||||||
On the picking/transfer records created by Odoo, the :guilabel:`Source Document` is the product's
|
Reordering rule
|
||||||
reordering rule. The location between the delivery order and the receipt is a transit location.
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. image:: resupply_warehouses/resupply-receipts-from-reordering-rule.png
|
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 <inventory/warehouses_storage/zero-zero>` 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
|
:align: center
|
||||||
:alt: A reordering rule automatically creates two receipts for stock between warehouses.
|
:alt: Show reordering rule configurations.
|
||||||
|
|
||||||
.. image:: resupply_warehouses/second-warehouse-delivery-order.png
|
.. _inventory/warehouses_storage/resupply-workflow:
|
||||||
:align: center
|
|
||||||
:alt: A warehouse order for resupplying one warehouse's stock with another.
|
|
||||||
|
|
||||||
.. image:: resupply_warehouses/second-warehouse-stock-receipt.png
|
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
|
:align: center
|
||||||
:alt: A receipt for stock received to one warehouse from another.
|
: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.
|
||||||
|
|
||||||
|
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 14 KiB |