Compare commits
1 Commits
18.0
...
13.0-inven
Author | SHA1 | Message | Date | |
---|---|---|---|---|
![]() |
b932426df7 | [IMP] Inventory: Inventory doc improvement to fit Odoo 13 |
|
@ -7,8 +7,7 @@ Concepts
|
||||||
:glob:
|
:glob:
|
||||||
|
|
||||||
concepts/use_routes
|
concepts/use_routes
|
||||||
concepts/procurement_rule
|
concepts/pull_push_rules
|
||||||
concepts/push_rule
|
|
||||||
concepts/inter_warehouse
|
concepts/inter_warehouse
|
||||||
concepts/cross_dock
|
concepts/cross_dock
|
||||||
concepts/stock_warehouses
|
concepts/stock_warehouses
|
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 10 KiB |
BIN
inventory/routes/concepts/media/pull_push_rules_01.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
inventory/routes/concepts/media/pull_push_rules_02.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
inventory/routes/concepts/media/pull_push_rules_03.png
Normal file
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 16 KiB |
BIN
inventory/routes/concepts/media/use_routes_01.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
inventory/routes/concepts/media/use_routes_02.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
inventory/routes/concepts/media/use_routes_03.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
inventory/routes/concepts/media/use_routes_04.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
inventory/routes/concepts/media/use_routes_05.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
inventory/routes/concepts/media/use_routes_06.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
inventory/routes/concepts/media/use_routes_07.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
inventory/routes/concepts/media/use_routes_08.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
inventory/routes/concepts/media/use_routes_09.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
inventory/routes/concepts/media/use_routes_10.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
inventory/routes/concepts/media/use_routes_11.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
inventory/routes/concepts/media/use_routes_12.png
Normal file
After Width: | Height: | Size: 10 KiB |
|
@ -1,73 +0,0 @@
|
||||||
===========================
|
|
||||||
What is a procurement rule?
|
|
||||||
===========================
|
|
||||||
|
|
||||||
Overview
|
|
||||||
========
|
|
||||||
|
|
||||||
The procurement inventory control system begins with a customer's order.
|
|
||||||
With this strategy, companies only make enough product to fulfill
|
|
||||||
customer's orders. One advantage to the system is that there will be no
|
|
||||||
excess of inventory that needs to be stored, thus reducing inventory
|
|
||||||
levels and the cost of carrying and storing goods. However, one major
|
|
||||||
disadvantage to the pull system is that it is highly possible to run
|
|
||||||
into ordering dilemmas, such as a supplier not being able to get a
|
|
||||||
shipment out on time. This leaves the company unable to fulfill the
|
|
||||||
order and contributes to customer dissatisfaction.
|
|
||||||
|
|
||||||
An example of a pull inventory control system is the make-to-order. The
|
|
||||||
goal is to keep inventory levels to a minimum by only having enough
|
|
||||||
inventory, not more or less, to meet customer demand. The MTO system
|
|
||||||
eliminates waste by reducing the amount of storage space needed for
|
|
||||||
inventory and the costs of storing goods.
|
|
||||||
|
|
||||||
Configuration
|
|
||||||
=============
|
|
||||||
|
|
||||||
Procurement rules are part of the routes. Go to the Inventory
|
|
||||||
application>Configuration>Settings and tick "Advance routing of products
|
|
||||||
using rules".
|
|
||||||
|
|
||||||
.. image:: media/procurement_rule01.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
Procurement rules settings
|
|
||||||
==========================
|
|
||||||
|
|
||||||
The procurement rules are set on the routes. In the inventory
|
|
||||||
application, go to :menuselection:`Configuration --> Routes`.
|
|
||||||
|
|
||||||
In the Procurement rules section, click on Add an item.
|
|
||||||
|
|
||||||
.. image:: media/procurement_rule02.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
Here you can set the conditions of your rule. There are 3 types of
|
|
||||||
action possible :
|
|
||||||
|
|
||||||
- Move from another location rules
|
|
||||||
|
|
||||||
- Manufacturing rules that will trigger the creation of manufacturing
|
|
||||||
orders
|
|
||||||
|
|
||||||
- Buy rules that will trigger the creation of purchase orders
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
The Manufacturing application has to be installed in order to
|
|
||||||
trigger manufacturing rules.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
The Purchase application has to be installed in order to trigger
|
|
||||||
**buy** rules.
|
|
||||||
|
|
||||||
.. image:: media/procurement_rule03.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
Some Warehouse Configuration creates routes with procurement
|
|
||||||
rules already defined.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
* :doc:`push_rule`
|
|
||||||
* :doc:`inter_warehouse`
|
|
||||||
* :doc:`cross_dock`
|
|
116
inventory/routes/concepts/pull_push_rules.rst
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
===========================
|
||||||
|
What are Pull & Push Rules?
|
||||||
|
===========================
|
||||||
|
|
||||||
|
In inventory management, the supply chain strategy determines when
|
||||||
|
products should be fabricated, delivered to distribution centers and
|
||||||
|
made available in the retail channel.
|
||||||
|
|
||||||
|
Under a pull supply chain, actual customer demand drives the process,
|
||||||
|
while push strategies are driven by long-term projections.
|
||||||
|
|
||||||
|
Pull Inventory Control System
|
||||||
|
=============================
|
||||||
|
|
||||||
|
The *procurement inventory control system* begins with a customer's
|
||||||
|
order. With this strategy, companies only produce enough to fulfill their
|
||||||
|
customer's orders. One advantage is that there are no
|
||||||
|
extra goods that need to be stored, thus reducing inventory levels
|
||||||
|
and the cost of carrying and storing. However, one major
|
||||||
|
disadvantage to the pull system is that it is highly possible to run
|
||||||
|
into ordering dilemmas, such as a supplier not being able to get a
|
||||||
|
shipment out on time. This leaves the company unable to fulfill the
|
||||||
|
order and contributes to customer dissatisfaction.
|
||||||
|
|
||||||
|
An example of a pull inventory control system is the make-to-order. The
|
||||||
|
goal is to keep inventory levels to a minimum by only having enough
|
||||||
|
inventory to meet customer's demand. The :abbr:`MTO (Make-to-order)` system
|
||||||
|
eliminates waste by reducing the amount of storage space needed for
|
||||||
|
inventory and the costs of storing goods.
|
||||||
|
|
||||||
|
Push Inventory Control System
|
||||||
|
=============================
|
||||||
|
|
||||||
|
The *push system of inventory control* involves forecasting inventory
|
||||||
|
needs to meet customer's demand. Companies must predict which products
|
||||||
|
customers will purchase along with determining what quantity of goods
|
||||||
|
will be purchased. The company will, in turn, produce enough product to
|
||||||
|
meet the forecast demand and sell, or push, the goods to the consumer.
|
||||||
|
Disadvantages of the push inventory control system are that forecasts
|
||||||
|
are often inaccurate as sales can be unpredictable and vary from one
|
||||||
|
year to the next, but it also increases the company's costs for storing
|
||||||
|
these goods if the minimum stock isn’t well defined. An advantage of the push system is that the
|
||||||
|
company is fairly assured it will have enough product on hand to complete customer orders,
|
||||||
|
preventing the inability to meet customer demand for the product.
|
||||||
|
|
||||||
|
A push flow indicates how locations are chained with other ones. As soon
|
||||||
|
as a given quantity of products is moved in the source location, a
|
||||||
|
chained move is automatically foreseen according to the parameters set
|
||||||
|
on the flow specifications (destination location, delay, type of move).
|
||||||
|
It can be triggered automatically or manually.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
=============
|
||||||
|
|
||||||
|
Pull and push rules are part of the routes. Go to :menuselection:`Inventory --> Configuration -->
|
||||||
|
Settings` and tick *Multi-Step Routes*.
|
||||||
|
|
||||||
|
.. image:: media/pull_push_rules_01.png
|
||||||
|
:align: center
|
||||||
|
:alt: Enabling multi-step routes to use pull and push rules
|
||||||
|
|
||||||
|
.. Note::
|
||||||
|
Storage Locations are automatically activated at the same time as
|
||||||
|
Multi-Step Routes.
|
||||||
|
|
||||||
|
Rules settings
|
||||||
|
==============
|
||||||
|
|
||||||
|
The rules are defined on the routes. In the inventory application, go to
|
||||||
|
:menuselection:`Inventory --> Configuration --> Routes`. In the *Rules* section, click on *Add a line*.
|
||||||
|
|
||||||
|
.. image:: media/pull_push_rules_02.png
|
||||||
|
:align: center
|
||||||
|
:alt: Add a line on Odoo routes to use Pull & Push rules
|
||||||
|
|
||||||
|
Here you can set the action to be triggered by the rule. Choose from:
|
||||||
|
|
||||||
|
- **Pull From**: this rule will be triggered by a need for the product in a specific stock
|
||||||
|
location. The need can come from a sale order which has been validated or for a manufacturing order
|
||||||
|
which requires a specific component. When the need appears in the source location, Odoo generates a
|
||||||
|
picking to fulfill this need thanks to the pull rule.
|
||||||
|
- **Push To**: this rule will be triggered by the arrival of some products in the defined source
|
||||||
|
location. In case you move products to the source location, Odoo generates a picking to move those
|
||||||
|
products to the destination location.
|
||||||
|
- **Push & Pull**: it allows to generate a picking in the two different situations explained above,
|
||||||
|
when products are required in a specific source location as well as when they are pushed to a
|
||||||
|
specific source location.
|
||||||
|
- **Buy**: when products are needed the source location, a request for quotation is created to
|
||||||
|
fulfill the need.
|
||||||
|
- **Manufacture**: when products are needed in the source location, a manufacturing order is
|
||||||
|
created to fulfill the need.
|
||||||
|
- Many translated example sentences containing
|
||||||
|
|
||||||
|
.. image:: media/pull_push_rules_03.png
|
||||||
|
:align: center
|
||||||
|
:alt: Creating rules inside of Routes
|
||||||
|
|
||||||
|
The *Operation Type* allows you to define which kind of picking will
|
||||||
|
be created from this rule, in the example, I would like to create an
|
||||||
|
internal transfer.
|
||||||
|
The *Supply Method* allows you to define what happens at the source
|
||||||
|
location:
|
||||||
|
|
||||||
|
- **Take From Stock**: the products will be taken from the available stock of the source location.
|
||||||
|
- **Trigger Another Rule**: the system will try to find a stock rule to bring the products in the
|
||||||
|
source location. The available stock will be ignored.
|
||||||
|
- **Take From Stock, if Unavailable, Trigger Another Rule**: the products will be taken from the
|
||||||
|
available stock of the source location. If there is no stock available, the system will try to find
|
||||||
|
a rule to bring the products in the source location.
|
||||||
|
|
||||||
|
In the *Scheduling* section, you can determine how will Odoo behave
|
||||||
|
when one of the pickings of the chain is rescheduled. In case you decide
|
||||||
|
to Propagate Rescheduling, the next move will also be rescheduled. In
|
||||||
|
case you prefer to have the choice to manually reschedule the next move
|
||||||
|
or not, you can decide to receive an alert about it under the form of
|
||||||
|
the next activity.
|
|
@ -1,81 +0,0 @@
|
||||||
====================
|
|
||||||
What is a push rule?
|
|
||||||
====================
|
|
||||||
|
|
||||||
Overview
|
|
||||||
=========
|
|
||||||
|
|
||||||
The push system of inventory control involves forecasting inventory
|
|
||||||
needs to meet customer demand. Companies must predict which products
|
|
||||||
customers will purchase along with determining what quantity of goods
|
|
||||||
will be purchased. The company will in turn produce enough product to
|
|
||||||
meet the forecast demand and sell, or push, the goods to the consumer.
|
|
||||||
Disadvantages of the push inventory control system are that forecasts
|
|
||||||
are often inaccurate as sales can be unpredictable and vary from one
|
|
||||||
year to the next. Another problem with push inventory control systems is
|
|
||||||
that if too much product is left in inventory, this increases the
|
|
||||||
company's costs for storing these goods. An advantage to the push system
|
|
||||||
is that the company is fairly assured it will have enough product on
|
|
||||||
hand to complete customer orders, preventing the inability to meet
|
|
||||||
customer demand for the product.
|
|
||||||
|
|
||||||
A push flow indicates how locations are chained with the other ones. As
|
|
||||||
soon as a given quantity of products is moved in the source location, a
|
|
||||||
chained move is automatically foreseen according to the parameters set
|
|
||||||
on the flow specification (destination location, delay, type of move,
|
|
||||||
journal). It can be triggered automatically or manually.
|
|
||||||
|
|
||||||
Configuration
|
|
||||||
=============
|
|
||||||
|
|
||||||
Push rules are part of the routes. Go to the menu
|
|
||||||
:menuselection:`Inventory --> Configuration --> Settings`
|
|
||||||
and tick **Advance routing of products using rules**.
|
|
||||||
|
|
||||||
.. image:: media/push_rule01.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
Push rules settings
|
|
||||||
===================
|
|
||||||
|
|
||||||
The push rules are set on the routes.
|
|
||||||
Go to :menuselection:`Configuration --> Routes`.
|
|
||||||
|
|
||||||
In the push rule section, click on **Add an item**.
|
|
||||||
|
|
||||||
.. image:: media/push_rule02.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
Here you can set the conditions of your rule. In this example, when a
|
|
||||||
good is in **Input location**, it needs to be moved to the quality control.
|
|
||||||
In the 3 steps receipts, another push rule will make the goods that are
|
|
||||||
in the quality control location move to the stock.
|
|
||||||
|
|
||||||
.. image:: media/push_rule03.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
Some warehouse configuration creates routes with push rules
|
|
||||||
already defined.
|
|
||||||
|
|
||||||
Stock transfers
|
|
||||||
===============
|
|
||||||
|
|
||||||
The push rule will trigger stock transfer. According to the rule set on
|
|
||||||
your route, you will see that some transfers might be ready and other
|
|
||||||
are waiting.
|
|
||||||
|
|
||||||
The push rule that was set above will create moves from **WH/Input**
|
|
||||||
location to the **WH/Quality Control** location.
|
|
||||||
|
|
||||||
.. image:: media/push_rule04.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
In this example, another move is waiting according to the second push
|
|
||||||
rule, it defines that when the quality control is done, the goods will
|
|
||||||
be moved to the main stock.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
* :doc:`procurement_rule`
|
|
||||||
* :doc:`inter_warehouse`
|
|
||||||
* :doc:`cross_dock`
|
|
|
@ -1,154 +1,144 @@
|
||||||
==================
|
==========
|
||||||
How to use routes?
|
Use Routes
|
||||||
==================
|
==========
|
||||||
|
|
||||||
Overview
|
A route is a collection of :doc:`push and pull rules <pull_push_rules>`. In Odoo, you can manage
|
||||||
========
|
advanced push/pull routes configurations, like:
|
||||||
|
|
||||||
A route is a collection of procurement rules and push rules. Odoo can
|
- Manage product manufacturing chains;
|
||||||
manage advanced push/pull routes configuration, for example:
|
- Manage default locations per product;
|
||||||
|
- Define routes within your warehouse according to the business needs, such as quality control, after-sales services or supplier returns;
|
||||||
|
- Help rental management, by generating automated returning moves for rented products.
|
||||||
|
|
||||||
- Manage product manufacturing chains
|
.. note::
|
||||||
|
- You can find documentation about those subjects :doc:`../../inventory`
|
||||||
- Manage default locations per product
|
|
||||||
|
|
||||||
- Define routes within your warehouse according to business needs, such
|
|
||||||
as quality control, after sales services or supplier returns
|
|
||||||
|
|
||||||
- Help rental management, by generating automated return moves for
|
|
||||||
rented products
|
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
=============
|
=============
|
||||||
|
|
||||||
Procurement rules are part of the routes. Go to the **Inventory**
|
To configure routes, go to :menuselection:`Inventory --> Configuration --> Settings` and enable
|
||||||
application, :menuselection:`Configuration --> Settings` and tick
|
the *Multi-Step Routes* feature.
|
||||||
**Advance routing of products using rules**.
|
|
||||||
|
|
||||||
.. image:: media/use_routes01.png
|
.. note::
|
||||||
:align: center
|
Enabling the *Multi-Step Routes* automatically enables the *Storage Location* feature too.
|
||||||
|
|
||||||
Pre-configured routes
|
.. image:: media/use_routes_01.png
|
||||||
|
:align: center
|
||||||
|
:alt: Enabling multi-step routes to work with routes
|
||||||
|
|
||||||
|
Pre-Configured Routes
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
Odoo has some pre-configured routes for your warehouses.
|
Of course, Odoo offers some pre-configured routes for your warehouses. To
|
||||||
|
see them, open the *Warehouses* menu, under *Configuration*.
|
||||||
|
|
||||||
In the Inventory application, go to
|
In the *Warehouse Configuration* tab, some routes are automatically
|
||||||
:menuselection:`Configuration --> Warehouses`.
|
created based on your choices for *Incoming Shipments* and *Outgoing
|
||||||
|
Shipments*.
|
||||||
|
|
||||||
In the **Warehouse Configuration** tab, **Incoming Shipments** and **Outgoing
|
.. image:: media/use_routes_02.png
|
||||||
Shippings** options set some routes according to your choices.
|
:align: center
|
||||||
|
:alt: automatically generated routes for incoming and outgoing shipments
|
||||||
.. image:: media/use_routes02.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
Custom Routes
|
Custom Routes
|
||||||
=============
|
=============
|
||||||
|
|
||||||
In the **Inventory** application, go to
|
In the *Inventory* application, open :menuselection:`Configuration --> Routes`. Then,
|
||||||
:menuselection:`Configuration --> Routes`.
|
you have to select the places where this route can be selected. You can
|
||||||
|
combine several choices if needed.
|
||||||
.. image:: media/use_routes03.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
First, you have to select the places where this route can be selected.
|
|
||||||
You can combine several choices.
|
|
||||||
|
|
||||||
Routes applied on warehouses
|
Routes applied on warehouses
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
If you tick **Warehouses**, you have to choose on which warehouse it will
|
If you tick *Warehouses*, you have to choose on which warehouse it
|
||||||
be applied. The route will be set for all transfer in that warehouse
|
will be applied. The route will be set for all transfers in that
|
||||||
that would meet the conditions of the procurement and push rules.
|
warehouse that would meet the conditions of the pull and push rules.
|
||||||
|
|
||||||
.. image:: media/use_routes04.png
|
.. image:: media/use_routes_03.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Applicable routes on warehouse
|
||||||
|
|
||||||
Routes applied on products
|
Routes applied to products
|
||||||
---------------------------
|
--------------------------
|
||||||
|
|
||||||
If you tick **Products**, you have to manually set on which product it
|
If you choose *Products*, you have to manually set on which product it
|
||||||
will be applied.
|
is applied.
|
||||||
|
|
||||||
.. image:: media/use_routes05.png
|
.. image:: media/use_routes_04.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Applicable routes on products
|
||||||
|
|
||||||
Open the product on which you want to apply the routes
|
To do so, open the product on which you want to apply the routes. Open
|
||||||
(:menuselection:`Inventory --> Control --> Products`).
|
the *Inventory tab* and select the route you’ve created.
|
||||||
In the Inventory Tab, select the route(s):
|
|
||||||
|
|
||||||
.. image:: media/use_routes06.png
|
.. image:: media/use_routes_05.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Choosing products the route is applicable on
|
||||||
|
|
||||||
Routes applied on Product Category
|
Routes applied on Product Category
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
If you tick **Product Categories**, you have to manually set on which
|
Then, you can also choose to apply routes to *product categories*.
|
||||||
categories it will be applied.
|
Just like you did for products, you have to manually set on which
|
||||||
|
categories it must be applied.
|
||||||
|
|
||||||
.. image:: media/use_routes07.png
|
.. image:: media/use_routes_06.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Applicable routes on product categories
|
||||||
|
|
||||||
Open the product on which you want to apply the routes
|
To do so, open the product category you want to apply the route to.
|
||||||
(:menuselection:`Configuration --> Product Categories`).
|
Then, select the route under the *Logistic* section.
|
||||||
Select the route(s) under the **Logistics** section :
|
|
||||||
|
|
||||||
.. image:: media/use_routes08.png
|
.. image:: media/use_routes_07.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Routes registration in the product category logistics field
|
||||||
|
|
||||||
Routes applied on Sales Order lines
|
Routes applied on Sales Order Lines
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
If you tick **Sales order lines**, you have to manually set the route
|
You can also apply routes on sales order lines. For that, tick *Sales
|
||||||
every time you make a sale order.
|
Order Lines* on your route form.
|
||||||
|
|
||||||
.. image:: media/use_routes09.png
|
.. image:: media/use_routes_08.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Applicable routes on sales order lines
|
||||||
|
|
||||||
In order to make it work, you also have to activate the use of the
|
Next, open a sale order. You can now add the *Route* in the view. Once
|
||||||
routes on the sales order.
|
done, you can choose the routes for each of your sales orders’ lines.
|
||||||
|
|
||||||
In the Sales application, go to
|
.. image:: media/use_routes_09.png
|
||||||
:menuselection:`Configuration --> Settings` and tick
|
:align: center
|
||||||
**Choose specific routes on sales order lines (advanced)**.
|
:alt: Enabling the routes on sales order lines
|
||||||
|
|
||||||
.. image:: media/use_routes10.png
|
.. image:: media/use_routes_10.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Sales orders showing the routes between the description and quantity
|
||||||
|
|
||||||
You can now choose the routes for each lines of your sales orders:
|
Pull and Push Rules
|
||||||
|
-------------------
|
||||||
|
|
||||||
.. image:: media/use_routes11.png
|
For detailed explanations about *Pull and Push Rules*, please refer to the following
|
||||||
:align: center
|
documentation: :doc:`pull_push_rules`.
|
||||||
|
|
||||||
Procurement and push rules
|
Pull Configuration
|
||||||
==========================
|
------------------
|
||||||
|
|
||||||
Please refer to the documents:
|
When making a procurement request, you can force the route you want to
|
||||||
|
use. On the product form, click on *Replenish*. Then, choose the route you
|
||||||
|
want to use.
|
||||||
|
|
||||||
- :doc:`procurement_rule`
|
.. image:: media/use_routes_11.png
|
||||||
|
:align: center
|
||||||
|
:alt: Product replenishment
|
||||||
|
|
||||||
- :doc:`push_rule`
|
.. image:: media/use_routes_12.png
|
||||||
|
:align: center
|
||||||
|
:alt: Replenishment with preferred routes and chosen quantity
|
||||||
|
|
||||||
Procurement configuration
|
Replenish on Order (MTO) Route
|
||||||
=========================
|
------------------------------
|
||||||
|
|
||||||
When doing a procurement request, you can force the route you want to
|
If you do not work with stock, it is better to use the *Replenish on Order
|
||||||
use. On the product (:menuselection:`Inventory Control --> Products`),
|
(MTO)* route. Combined with the *Buy* or *Manufacturing* routes, it
|
||||||
click on **Procurement Request**. Choose the route you want to use next to
|
automatically triggers the purchase order or manufacturing order
|
||||||
**Preferred Routes**:
|
when your products are out-of-stock.
|
||||||
|
|
||||||
.. image:: media/use_routes12.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
Make-to-Order Route
|
|
||||||
===================
|
|
||||||
|
|
||||||
If you work with no stock, or with minimum stock rules, it is better to
|
|
||||||
use the **Make To Order** route. Combine it with the route **Buy** or
|
|
||||||
**Manufacture** and it will trigger automatically the purchase order or
|
|
||||||
the Manufacturing Order when your products are out-of-stock.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
* :doc:`push_rule`
|
|
||||||
* :doc:`inter_warehouse`
|
|
||||||
* :doc:`cross_dock`
|
|
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 24 KiB |
BIN
inventory/routes/strategies/media/removal_01.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
inventory/routes/strategies/media/removal_02.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
inventory/routes/strategies/media/removal_03.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
inventory/routes/strategies/media/removal_04.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
inventory/routes/strategies/media/removal_05.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
inventory/routes/strategies/media/removal_06.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
inventory/routes/strategies/media/removal_07.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
inventory/routes/strategies/media/removal_08.png
Normal file
After Width: | Height: | Size: 14 KiB |
|
@ -1,192 +1,136 @@
|
||||||
==================================================
|
==================================================
|
||||||
What is a removal strategy (FIFO, LIFO, and FEFO)?
|
What is a Removal Strategy (FIFO, LIFO, and FEFO)?
|
||||||
==================================================
|
==================================================
|
||||||
|
|
||||||
Overview
|
Removal strategies are a set of rules defined in picking operations that change which products
|
||||||
========
|
are moved first. A removal strategy can optimize the distance for the worker, for
|
||||||
|
quality control purposes or to first move the products with the closest
|
||||||
Removal strategies are usually in picking operations to select the best
|
expiration date.
|
||||||
products in order to optimize the distance for the worker, for quality
|
|
||||||
control purpose or due to reason of product expiration.
|
|
||||||
|
|
||||||
When a product movement needs to be done, Odoo will find available
|
When a product movement needs to be done, Odoo will find available
|
||||||
products that can be assigned to shipping. The way Odoo assign these
|
products that can be assigned to the transfer. The way Odoo assigns
|
||||||
products depend on the **removal strategy** that is defined on the **product
|
these products depends on the *removal strategy* that is defined in
|
||||||
category** or on the **location**.
|
the *product category* or on *the location*.
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
=============
|
=============
|
||||||
|
|
||||||
In the **Inventory** application, go to :menuselection:`Configuration
|
In order to be able to identify some units from other ones, in Odoo, you
|
||||||
--> Settings`:
|
need to track them either by lot or by serial number. Go to
|
||||||
|
:menuselection:`Inventory --> Configuration --> Settings`.
|
||||||
|
|
||||||
.. image:: media/removal01.png
|
Activate *Storage Locations*, *Multi-Step Routes* and *Lots &
|
||||||
:align: center
|
Serial Numbers*.
|
||||||
|
|
||||||
.. image:: media/removal02.png
|
.. image:: media/removal_01.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Enabling lots and serial numbers to use FIFO, LIFO and FEFO strategies
|
||||||
|
|
||||||
Check **Track lots or serial numbers**, **Manage several location per
|
In case you want to work with FEFO, *Expiration Dates* should also be
|
||||||
warehouse** and **Advanced routing of products using rules**, then click
|
activated.
|
||||||
on **Apply**.
|
|
||||||
|
|
||||||
Then, open :menuselection:`Configuration --> Locations`
|
You can then define your removal strategy, either on *Product
|
||||||
and open the location on which you want to apply a removal strategy.
|
Categories* via the :menuselection:`Inventory --> Configuration --> Product
|
||||||
|
Categories`, or on *Locations*, in :menuselection:`Inventory -->
|
||||||
|
Configuration --> Locations`.
|
||||||
|
|
||||||
.. image:: media/removal03.png
|
.. image:: media/removal_02.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Selecting the good removal strategy on the product category form
|
||||||
|
|
||||||
Types of removal strategy
|
.. image:: media/removal_03.png
|
||||||
=========================
|
:align: center
|
||||||
|
:alt: Selecting the removal strategy on the location form
|
||||||
|
|
||||||
FIFO ( First In First Out )
|
Removal Strategy Types
|
||||||
---------------------------
|
======================
|
||||||
|
|
||||||
A **First In First Out** strategy implies that the products that were
|
FIFO (First In First Out)
|
||||||
stocked first will move out first. Companies should use FIFO method if
|
-------------------------
|
||||||
they are selling perishable goods. Companies selling products with
|
|
||||||
|
A First In First Out strategy implies that the products that were
|
||||||
|
stocked first are moved out first. Companies should use the FIFO method
|
||||||
|
if they are selling perishable goods. Companies selling products with
|
||||||
relatively short demand cycles, such as clothes, also may have to pick
|
relatively short demand cycles, such as clothes, also may have to pick
|
||||||
FIFO to ensure they are not stuck with outdated styles in inventory.
|
FIFO to ensure they are not stuck with outdated styles in inventory.
|
||||||
|
|
||||||
Go to :menuselection:`Inventory --> Configuration --> Locations`,
|
Go to :menuselection:`Inventory > Configuration > Locations`, open the Stock location and
|
||||||
open the stock location and set **FIFO** removal strategy.
|
set FIFO as the removal strategy.
|
||||||
|
|
||||||
Let's take one example of FIFO removal strategy.
|
In your stock location (WH/Stock), there are 3 lots of Hand Cream
|
||||||
|
available.
|
||||||
|
|
||||||
In your warehouse stock (``WH/Stock``) location, there are ``3`` lots of ``iPod
|
.. image:: media/removal_04.png
|
||||||
32 Gb`` available.
|
:align: center
|
||||||
|
:alt: View of stock location with products in it
|
||||||
|
|
||||||
You can find details of available inventory in inventory valuation
|
Create a sales order for 25 units of Hand Cream and validate it. If you
|
||||||
report.
|
go on the delivery order linked to the picking, you can see that the
|
||||||
|
oldest lot numbers have been automatically reserved thanks to the FIFO
|
||||||
|
removal strategy.
|
||||||
|
|
||||||
.. image:: media/removal04.png
|
.. image:: media/removal_05.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: View of reserved products to deliver a customer thanks to removal strategies
|
||||||
Create one sales order ``25`` unit of ``iPod 32 GB`` and confirm it.
|
|
||||||
|
|
||||||
You can see in the outgoing shipment product that the ``Ipod 32
|
|
||||||
Gb`` are assigned with the **oldest** lots, using the FIFO removal
|
|
||||||
strategy.
|
|
||||||
|
|
||||||
.. image:: media/removal05.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
LIFO (Last In First Out)
|
LIFO (Last In First Out)
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
In this warehouse management, the products which are brought in the
|
In LIFO, the products which are brought the last move out the first.
|
||||||
last, moves out the first. LIFO is used in case of products which do not
|
LIFO is used when products do not have a shelf life.
|
||||||
have a shelf life.
|
|
||||||
|
|
||||||
Go to :menuselection:`Inventory --> Configuration --> Locations`,
|
Go to :menuselection:`Inventory --> Configuration --> Locations`, open the location WH/Stock
|
||||||
open the stock location and set **LIFO** removal strategy.
|
and set the LIFO removal strategy. With the exact same data in the
|
||||||
|
database, we can now see that on the picking, the lot numbers which are
|
||||||
|
privileged are the ones created the last.
|
||||||
|
|
||||||
In our example, let's check the current available stock of ``Ipod 32 Gb``
|
.. image:: media/removal_06.png
|
||||||
on ``WH/Stock`` location.
|
:align: center
|
||||||
|
:alt: Vie of reserved products thanks to removal strategies
|
||||||
|
|
||||||
.. image:: media/removal06.png
|
FEFO (First Expiry First Out)
|
||||||
:align: center
|
-----------------------------
|
||||||
|
|
||||||
Create a sale order with ``10`` units of ``Ipod 32 Gb``.
|
|
||||||
|
|
||||||
You can see in the outgoing shipment product that the ``Ipod 32
|
|
||||||
Gb`` are assigned with the **newest** lots, using the LIFO removal
|
|
||||||
strategy.
|
|
||||||
|
|
||||||
.. image:: media/removal07.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
FEFO ( First Expiry First Out )
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
In FEFO warehouse management, the products are dispatched from the
|
In FEFO warehouse management, the products are dispatched from the
|
||||||
warehouse according to their expiration date.
|
warehouse according to their expiration date.
|
||||||
|
|
||||||
Go to :menuselection:`Inventory --> Configuration --> Setting`.
|
In case you want more information about Expiration Dates, please have a
|
||||||
Check the option **Define Expiration date on serial numbers**.
|
look at :doc:`manage expiration dates <../../management/lots_serial_numbers/expiration_dates>` documentation.
|
||||||
Then click on **Apply** to save changes.
|
|
||||||
|
|
||||||
.. image:: media/removal08.png
|
The activation of the *Expiration Dates* functionality allows you to
|
||||||
:align: center
|
define different dates on the serial/lot numbers, which are used in
|
||||||
|
FEFO. These dates can be set from :menuselection:`Inventory --> Master Data --> Lots/Serial
|
||||||
|
Numbers`.
|
||||||
|
|
||||||
This will allow you to set four expiration fields for each lot or serial number:
|
.. image:: media/removal_07.png
|
||||||
**best before date**, **end of life date**, **alert date** and **removal date**.
|
:align: center
|
||||||
These dates can be set from :menuselection:`Inventory Control --> Serial Numbers/Lots`.
|
:alt: View of removal date when using a FEFO strategy
|
||||||
|
|
||||||
.. image:: media/removal09.png
|
Lots are picked based on their removal date, from earliest to
|
||||||
:align: center
|
latest. Lots without a removal date defined are picked after lots
|
||||||
|
with removal dates.
|
||||||
|
|
||||||
- **Best Before Date**: This is the date on which the goods with this
|
All dates except *removal dates* are for informational and reporting
|
||||||
serial/lot number start deteriorating, without being dangerous yet.
|
purposes only. Lots that are past any or all of the above expiration
|
||||||
|
dates may still be picked for delivery orders.
|
||||||
|
|
||||||
- **End of Life Date:** This is the date on which the goods with this
|
To set the removal strategy on location, go to :menuselection:`Inventory --> Configuration -->
|
||||||
serial/lot number may become dangerous and must not be consumed.
|
Locations`, open WH/Stock and choose FEFO.
|
||||||
|
|
||||||
- **Removal Date:** This is the date on which the goods with this
|
|
||||||
serial/lot number should be removed from the stock. Using the FEFO
|
|
||||||
removal strategy goods are picked for delivery orders using this date.
|
|
||||||
|
|
||||||
- **Alert Date:** This is the date on which an alert should be sent
|
|
||||||
about the goods with this serial/lot number.
|
|
||||||
|
|
||||||
Lots will be picked based on their **removal date**, from earliest
|
|
||||||
to latest. Lots without a removal date defined will be picked after
|
|
||||||
lots with removal dates.
|
|
||||||
|
|
||||||
All dates except **removal date** are for informational and reporting purposes only.
|
|
||||||
Lots that are past any or all of the above expiration dates may still be picked
|
|
||||||
for delivery orders, and no alerts will be sent when lots pass their **alert date**.
|
|
||||||
|
|
||||||
Expiration dates on lots can also be set automatically when goods are received into stock.
|
|
||||||
After enabling expiration dates on serial numbers, four new fields will become available
|
|
||||||
in the inventory tab of the product form: **product life time**, **product use time**,
|
|
||||||
**product removal time**, and **product alert time**. When an integer is entered into one
|
|
||||||
of these fields, the expiration date of a lot/serial of the product in question will be set
|
|
||||||
to the creation date of the lot/serial number plus the number of days entered in the time
|
|
||||||
increment field. If the time increment field is set to zero, then the expiration date of
|
|
||||||
a lot/serial must be defined manually after the lot has been created.
|
|
||||||
|
|
||||||
Each of these time increment fields is used to generate one of the lot expiration date fields as follows:
|
|
||||||
|
|
||||||
Product Use Time --> Best Before Date
|
|
||||||
|
|
||||||
Product Removal Time --> Removal Date
|
|
||||||
|
|
||||||
Product Life Time --> End of Life Date
|
|
||||||
|
|
||||||
Product Alert Time --> Alert Date
|
|
||||||
|
|
||||||
To set the removal strategy on location, go to
|
|
||||||
:menuselection:`Configuration --> Locations` and choose FEFO.
|
|
||||||
|
|
||||||
.. image:: media/removal10.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
Let's take an example, there are ``3`` lots of ``ice cream`` available in
|
|
||||||
``WH/Stock`` location: ``LOT0001``, ``LOT0002``, ``LOT0003`` with
|
|
||||||
different expiration date.
|
|
||||||
|
|
||||||
+-----------------------+---------------+-----------------------+
|
+-----------------------+---------------+-----------------------+
|
||||||
| **Lot / Serial No** | **Product** | **Expiration Date** |
|
| **Lot / Serial No** | **Product** | **Expiration Date** |
|
||||||
+=======================+===============+=======================+
|
+=======================+===============+=======================+
|
||||||
| LOT0001 | Ice Cream | 08/20/2015 |
|
| 0000001 | Hand Cream | 09/30/2019 |
|
||||||
+-----------------------+---------------+-----------------------+
|
+-----------------------+---------------+-----------------------+
|
||||||
| LOT0002 | Ice Cream | 08/10/2015 |
|
| 0000002 | Hand Cream | 11/30/2019 |
|
||||||
+-----------------------+---------------+-----------------------+
|
+-----------------------+---------------+-----------------------+
|
||||||
| LOT0003 | Ice Cream | 08/15/2015 |
|
| 0000003 | Hand Cream | 10/31/2019 |
|
||||||
+-----------------------+---------------+-----------------------+
|
+-----------------------+---------------+-----------------------+
|
||||||
|
|
||||||
We will create a sale order with ``15kg`` of ``ice cream`` and confirm it.
|
When we sell for 25 units of Hand Cream, we can see that the
|
||||||
|
lot numbers which have been automatically reserved by Odoo are the ones
|
||||||
|
with the closest expiration date, meaning 0000001 and 0000003.
|
||||||
|
|
||||||
The outgoing shipment related to sale order will make the move based on
|
.. image:: media/removal_08.png
|
||||||
removal strategy **FEFO**.
|
:align: center
|
||||||
|
:alt: View of which lots are reserved when using a FEFO strategy
|
||||||
It will take ``10kg`` from ``LOT0002`` and ``5kg`` from ``LOT0003`` based on the
|
|
||||||
removal dates.
|
|
||||||
|
|
||||||
.. image:: media/removal11.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
|
|
||||||
* :doc:`../../management/reporting/inventory_valuation_config`
|
|