[IMP] Inventory: Update inter-warehouse replenishment

closes odoo/documentation#3967

Signed-off-by: John Holton (hojo) <hojo@odoo.com>
This commit is contained in:
John Holton (hojo) 2023-03-29 21:40:22 +00:00
parent 1ce7166f49
commit 6ea2eb29fb
31 changed files with 156 additions and 195 deletions

View File

@ -10,7 +10,6 @@ Warehouse Management
management/products
management/warehouses
management/replenishment_strategies
management/delivery
management/incoming
management/misc

View File

@ -1,11 +0,0 @@
:nosearch:
====================
Inventory Adjustment
====================
.. toctree::
:titlesonly:
:glob:
replenishment_strategies/virtual_warehouses

View File

@ -1,53 +0,0 @@
===============================
Resupply from another Warehouse
===============================
Configuration
=============
In order to be able to resupply from another warehouse, you need to
activate \*multi-step routes\*.
.. image:: virtual_warehouses/virtual-warehouses-settings.png
:align: center
:alt: Enable Multi-Step Routes in an Odoo database's settings
You can then access your warehouses via :menuselection:`Inventory --> Configuration -->
Warehouses`.
Enter the warehouse which should be resupplied by another one. You will
have the possibility to directly indicate through which warehouse it
gets resupplied.
.. image:: virtual_warehouses/virtual_warehouses_02.png
:align: center
By activating this option, a new route will now be available on your
products \*Supply Product from Second warehouse\*. It can now be
selected, along with either a \*reordering rule\* or a \*make to
order\*.
.. image:: virtual_warehouses/virtual_warehouses_03.png
:align: center
For the demonstration, I set a reordering rule with a minimum of 5 units
in stock and a maximum of 10 units in stock, having currently 0 units on
hand. I will run the scheduler by going to :menuselection:`Inventory --> Operations -->
Run scheduler`.
.. image:: virtual_warehouses/virtual_warehouses_04.png
:align: center
The system automatically creates two pickings, one \*delivery order\*
from my Second Warehouse which contains the necessary products, and a
receipt in my main warehouse WH/Stock for the same products. The source
document is the \*reordering rule\* which triggered the route \*Supply
Product from Second warehouse\*.
.. image:: virtual_warehouses/virtual_warehouses_05.png
:align: center
.. image:: virtual_warehouses/virtual_warehouses_06.png
:align: center
.. image:: virtual_warehouses/virtual_warehouses_07.png
:align: center

View File

@ -9,3 +9,4 @@ Warehouses
:glob:
warehouses/difference_warehouse_location
warehouses/warehouse_replenishment_transfer

View File

@ -0,0 +1,150 @@
========================================================
Transfer products between warehouses using replenishment
========================================================
For companies that use multiple warehouses, it is often necessary to transfer items between them.
This is referred to as an *inter-warehouse transfer*. Odoo *Inventory* handles the administrative
process of inter-warehouse transfers to ensure that inventory counts remain accurate during and
after the transfer. This document will detail the method for conducting an inter-warehouse transfer
using replenishment.
Configure warehouses for inter-warehouse replenishment
======================================================
First, ensure the :guilabel:`Multi-Step Routes` setting is enabled by navigating to
:menuselection:`Inventory --> Configuration --> Settings`, and then check the box under the
:guilabel:`Warehouse` tab. This will provide additional configuration options when creating a second
warehouse that are needed for inter-warehouse replenishment.
By default, Odoo comes with a main warehouse already configured. If an additional warehouse has not
already been created, do so now from the :guilabel:`Inventory` module by selecting
:menuselection:`Configuration --> Warehouses --> Create`. Otherwise, select the warehouse that
products will be transferred to from the :guilabel:`Warehouses` page and then click :guilabel:`Edit`
to change its settings. Configure the warehouse as follows:
- :guilabel:`Warehouse`: choose a name that is not already being used for another warehouse (e.g.
`Alternative Warehouse`)
- :guilabel:`Short Name`: choose a short name by which the warehouse will be identified (e.g.
`ALT_WH`)
Click :guilabel:`Save` and the new warehouse will be created. In addition, a new :guilabel:`Resupply
From` field will appear on the warehouse's form. Click :guilabel:`Edit` and then check the box next
to the warehouse that will be used to resupply the warehouse that is currently being configured.
.. image:: warehouse_replenishment_transfer/new-warehouse-configuration.png
:align: center
:alt: A warehouse settings form configured to allow resupplying between warehouses.
.. note::
For the purposes of this demonstration, the warehouse that products are transferred from
(outgoing) will be titled "San Francisco", and the warehouse that products are transferred to
(incoming) will be titled "San Francisco 2".
Configure products for inter-warehouse replenishment
====================================================
Products must also be configured properly in order for them to be transferred between warehouses.
Navigate to :menuselection:`Inventory --> Products --> Products` and select an existing product or
:guilabel:`Create` a new one, if necessary.
Then, on the product form, go to the :guilabel:`Inventory` tab and enable the checkbox for
:guilabel:`X: Supply Product from Y`, with *X* being the warehouse receiving the transferred
products and *Y* being the warehouse that products are transferred from.
.. image:: warehouse_replenishment_transfer/product-transfer-configuration.png
:align: center
:alt: Enable the checkbox to resupply one warehouse from another.
Replenish one warehouse from another
====================================
Starting in the :menuselection:`Inventory` module, select :menuselection:`Products --> Products` and
then choose the product that will be replenished. Click the :guilabel:`Replenish` button on the top
left of the product page and fill out the pop-up form as follows:
- :guilabel:`Quantity`: the number of units that will be sent to the warehouse being replenished
- :guilabel:`Scheduled Date`: the date that the replenishment is scheduled to take place
- :guilabel:`Warehouse`: the warehouse that will be replenished
- :guilabel:`Preferred Routes`: select `X: Supply Product from Y`, with *X* being the warehouse to
be replenished and *Y* being the warehouse that the product will be transferred from
.. image:: warehouse_replenishment_transfer/product-replenishment-form.png
:align: center
:alt: The form for replenishing a product.
Click :guilabel:`Confirm` and a delivery order will be created for the outgoing warehouse along with
a receipt for the warehouse that will receive the product. Depending on the configuration settings
for the outgoing and incoming warehouses, processing delivery orders and receipts will require
between one and three steps. This document will detail how to process one-step deliveries and
receipts.
Process the delivery order
--------------------------
The first stage of a replenishment order is processing the delivery from the warehouse that the
product is being transferred from. On the :menuselection:`Inventory` dashboard, select the
:guilabel:`X to Process` button on the :guilabel:`Delivery Orders` card for the outgoing warehouse,
then the delivery order created for the replenishment. On the delivery order page, click the
:guilabel:`Check Availability` button in the top left to reserve the quantity of the product to be
transferred. Once the delivery has been dispatched, click the :guilabel:`Validate` button to
register the quantities shipped.
.. image:: warehouse_replenishment_transfer/delivery-orders-card.png
:align: center
:alt: The delivery orders card for the outgoing warehouse.
Process the receipt
-------------------
Once the goods arrive at the incoming warehouse, the receipt created for that warehouse must be
processed as well. Return to the :menuselection:`Inventory` dashboard and select the :guilabel:`X to
Process` button on the :guilabel:`Receipts` card for the incoming warehouse, then the receipt
created for the replenishment. On the receipt page, click the :guilabel:`Validate` button in the top
left of the page to register the quantities received.
.. image:: warehouse_replenishment_transfer/receipts-card.png
:align: center
:alt: The delivery orders card for the outgoing warehouse.
After processing the receipt, the products transferred will now appear in the inventory of the
incoming warehouse. The stock numbers for both warehouses can be viewed by returning to the product
page and selecting the :guilabel:`X Units On Hand` button at the top of the screen.
Automate inter-warehouse replenishment
======================================
Using reordering rules, it is possible to automate the process of replenishing one warehouse from
another.
To get started, navigate to :menuselection:`Inventory --> Products --> Products`, and then
choose the product that will be replenished. From the product page, select the :guilabel:`Reordering
Rules` smart button at the top of the form, and then on the next page, click :guilabel:`Create` to
configure the form as follows:
- :guilabel:`Location`: the location that the reordering rule will replenish when triggered, in this
case, the incoming warehouse
- :guilabel:`Min Quantity`: when the quantity on hand at the incoming warehouse falls below this
number, the reordering rule will be triggered
- :guilabel:`Max Quantity`: when the reordering rule is triggered, the product will be replenished
at the incoming warehouse up to this quantity
- :guilabel:`Multiple Quantity`: specify if the product should be replenished in batches of a
certain quantity; for example, a product could be replenished in batches of 20
- :guilabel:`UoM`: the unit of measure used for reordering the product; this value can simply be
`Units`, or a specific unit of measurement for weight, length, etc.
.. image:: warehouse_replenishment_transfer/reordering-rule-configuration.png
:align: center
:alt: A fully configured reordering rule.
Finish by clicking :guilabel:`Save` and the reordering rule will be created. Now, when the scheduler
runs automatically each day, a transfer will be created for each reordering rule that has been
triggered.
.. tip::
To manually trigger reordering rules, start from the :menuselection:`Inventory` module and select
:menuselection:`Operation --> Run Scheduler`, then click the green :guilabel:`Run Scheduler`
button in the pop-up that appears.
After the scheduler runs, a delivery order and receipt will be created for the outgoing and incoming
warehouses, respectively. Both the delivery order and receipt should be processed using the same
method as detailed above.

View File

@ -9,6 +9,5 @@ Concepts
:glob:
concepts/use-routes
concepts/inter_warehouse
concepts/cross_dock
concepts/stock_warehouses

View File

@ -1,129 +0,0 @@
=========================
Inter-warehouse transfers
=========================
When owning several warehouses, you might need to transfer goods from one warehouse to another.
Proceeding to such behavior is called *inter-warehouse transfers*. If this action is physically
easy to perform, the administrative part can be arduous. Fortunately, Odoo comes with an intuitive
flow that helps save time when registering those transfers.
Configuration
=============
First of all, go to :menuselection:`Configuration --> Settings` and enable **Storage Locations**.
Then, hit save.
.. image:: inter_warehouse/feature-storage-location.png
:align: center
:alt: Enabling the storage location feature in Odoo Inventory.
.. important::
If you want to manage several routes within your warehouses, then enable **Multi-Step Routes**
and check :doc:`use-routes`.
Creating a new warehouse
========================
The next step is to create your new warehouse. To do so, go to :menuselection:`Configuration -->
Warehouse Management --> Warehouses` and click on **Create**.
Fill out a **Warehouse Name** and a **Short Name**. The short name is five characters maximum.
.. image:: inter_warehouse/create-new-warehouse.png
:align: center
:alt: Short name field of a warehouse on Odoo Inventory.
.. important::
The **Short Name** appears on your transfer orders and other warehouse documents. We recommend
using an understandable one (e.g.: WH/[first letters of location]).
Now, go back to your dashboard. There, new operations related to your warehouse have been
automatically generated.
.. image:: inter_warehouse/new-transfer-types.png
:align: center
:alt: Inventory app dashboard displaying new transfer type for the recently created warehouse.
Creating a new inventory
========================
If you create a new warehouse, you might already have an existing inventory in it. In that case, you
should create an inventory in Odoo. If this is not the case, you can skip this step.
Into the inventory application, select :menuselection:`Operations --> Inventory Adjustment`.
Then, create a new inventory by clicking on **Create**. Fill in the **Inventory Reference**,
**Date** and make sure to select the right warehouse and location.
.. image:: inter_warehouse/annual-inventory.png
:align: center
:alt: View of the inventory adjustment form before hitting the start button.
Next, click on **Start Inventory**. You will be able to input your existing products in the new
window. Select add an item and indicate the **Real Quantity** available in the warehouse.
The theoretical quantity can not be changed as it represents a computed one from purchase and sales
orders.
.. image:: inter_warehouse/in-progress-annual-inventory.png
:align: center
:alt: View of the actual physical inventory of the new warehouse.
.. tip::
Don't forget to validate your inventory once you have recorded the state of all your products.
Create an internal transfer
===========================
The final step is to create your internal transfer. If you want to transfer eight units of a product
from your first warehouse to another one, proceed as follows:
From your dashboard, select an internal movement of one of the two warehouses. To do so, click on
:menuselection:`Manage --> Planned Transfer`.
.. image:: inter_warehouse/internal-transfer-choice.png
:align: center
:alt: View of the choice between planned transfer and immediate transfer.
On the new window, select the source location zone (in this case, your "old" warehouse) and the
destination location zone (in this case, your "new" warehouse).
Add the products you want to transfer by clicking on **Add an Item**, then click on **Save** and
**Mark as TODO** once you are done.
.. image:: inter_warehouse/planned-internal-transfer.png
:align: center
:alt: View of the internal transfer form.
If you selected **Immediate Transfer**, Odoo processes the transfer automatically after you clicked
on **Validate**.
If you select **Mark as TODO**, Odoo puts the transfer in **Waiting Availability** status.
Click on **Reserve** to reserve the number of products in your source warehouse.
It is also possible to manually transfer each product:
- Via your dashboard, select the transfer order in the source location.
.. image:: inter_warehouse/in-progress-internal-transfer.png
:align: center
:alt: View of the dashboard with a zoom of the pending internal transfer.
- Select the right transfer order.
.. image:: inter_warehouse/internal-transfers-list.png
:align: center
:alt: View of the pending internal transfers list.
- Click on the little pencil logo in the lower right corner to open the operation details window.
In this new window you can manually indicate how many products you process.
.. image:: inter_warehouse/backorder.png
:align: center
:alt: View of a backorder pop-up window because all products are not moved at the same time.
.. note::
If you decide to process the transfer order partially (e.g., a part of the products can't be
shipped yet due to an unexpected event), Odoo automatically asks if you wish to create a
**backorder**.
- Create a backorder if you expect to process the remaining products later.
- Do not create a backorder if you will not supply/receive the remaining products.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View File

@ -35,6 +35,11 @@ applications/finance/accounting/fiscal_localizations/overview/localizations_list
applications/finance/accounting/getting_started/memento.rst applications/finance/accounting/getting_started/cheat_sheet.rst # memento -> cheat_sheet
applications/finance/accounting/payables/supplier_bills/manage.rst applications/inventory_and_mrp/purchase/manage_deals/manage.rst # (#3302)
# applications/inventory
applications/inventory_and_mrp/inventory/routes/concepts/inter_warehouse.rst applications/inventory_and_mrp/inventory/management/warehouses/warehouse_replenishment_transfer.rst
applications/inventory_and_mrp/inventory/management/replenishment_strategies/virtual_warehouses.rst applications/inventory_and_mrp/inventory/management/warehouses/warehouse_replenishment_transfer.rst
# applications/sales
applications/sales/crm/acquire_leads/generate_from_email.rst applications/sales/crm/acquire_leads/generate_leads.rst # (#986)