[IMP] Inventory: Update FEFO removal strategy
Co-authored-by: Jess Rogers <104637850+jero-odoo@users.noreply.github.com>
@@ -5,8 +5,82 @@ FEFO removal
|
||||
The *First Expired, First Out* (FEFO) removal strategy targets products for removal based on their
|
||||
assigned removal dates.
|
||||
|
||||
.. seealso::
|
||||
:doc:`About removal strategies <../removal_strategies>`
|
||||
.. _inventory/warehouses_storage/fefo_enable:
|
||||
|
||||
Enabling the FEFO removal strategy
|
||||
==================================
|
||||
|
||||
Lots and serial numbers differentiate identical products and track information like arrival or
|
||||
expiration dates. To enable this feature, navigate to :menuselection:`Inventory --> Configuration
|
||||
--> Settings`. Under the :guilabel:`Traceability` heading, check the box beside :guilabel:`Lots &
|
||||
Serial Numbers`. After :guilabel:`Lots & Serial Numbers` is enabled, the :guilabel:`Expiration Date`
|
||||
feature appears. Enable it to track expiration dates, best-before dates, removal dates, and alert
|
||||
dates.
|
||||
|
||||
.. image:: fefo/enable-features.png
|
||||
:alt: Enable Lots & Serial Numbers and Expiration Dates in the Inventory settings.
|
||||
|
||||
Enable tracking by lots or serial numbers
|
||||
-----------------------------------------
|
||||
|
||||
Next, ensure the intended product is tracked by lots or serial numbers by navigating to the product
|
||||
form through :menuselection:`Inventory --> Products --> Products` and selecting the desired product.
|
||||
On the product form, open the :guilabel:`General Information` tab and select the check box next to
|
||||
the :guilabel:`Track Inventory` field, then select either :guilabel:`By Unique Serial Number` or
|
||||
:guilabel:`By Lots`.
|
||||
|
||||
.. image:: fefo/track-by-lots.png
|
||||
:alt: Enable tracking by lot.
|
||||
|
||||
Setting dates
|
||||
-------------
|
||||
|
||||
Next, set the :guilabel:`Expiration Date`, :guilabel:`Best Before Date`, :guilabel:`Removal Date`,
|
||||
and :guilabel:`Alert Date` settings for the product. In the :guilabel:`Inventory` tab of the product
|
||||
form, under the :guilabel:`Traceability` heading, select the :guilabel:`Expiration Date` check box.
|
||||
The :guilabel:`Dates` heading appears. See :ref:`Removal date
|
||||
<inventory/warehouses_storage/removal-date>` for more information.
|
||||
|
||||
Assigning lots and serial numbers
|
||||
---------------------------------
|
||||
|
||||
After enabling the features, assign lot or serial numbers to products using an :doc:`inventory
|
||||
adjustment <../../warehouses_storage/inventory_management/count_products>` or during :ref:`product
|
||||
reception <inventory/product_management/assign-lots>`.
|
||||
|
||||
Setting removal strategies
|
||||
--------------------------
|
||||
|
||||
After lot or serial numbers have been assigned, set the removal strategy on the storage location or
|
||||
product category.
|
||||
|
||||
.. image:: fefo/location-categories.png
|
||||
:alt: Find the Locations or Categories from the Configuration menu.
|
||||
|
||||
On the location
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Open :menuselection:`Inventory app --> Configuration --> Locations`. Select the desired location. On
|
||||
the location form, under the :guilabel:`Logistics` heading, select :guilabel:`First Expiry First Out
|
||||
(FEFO)` from the list of removal strategies.
|
||||
|
||||
.. image:: fefo/set-on-location.png
|
||||
:alt: Set First Expiry First Out as the location removal strategy.
|
||||
|
||||
On the product category
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Configure removal strategies on product categories by going to :menuselection:`Inventory app -->
|
||||
Configuration --> Categories` and selecting the intended product category. Next, in the
|
||||
:guilabel:`Force Removal Strategy` field, specify :guilabel:`First Expiry First Out (FEFO)`.
|
||||
|
||||
.. image:: fefo/set-on-category.png
|
||||
:alt: Set First Expiry First Out as the product category removal strategy.
|
||||
|
||||
.. important::
|
||||
When there are different removal strategies applied on both the location and product category for
|
||||
a product, the value set on the :guilabel:`Force Removal Strategy` field set on a product
|
||||
category form is applied as top priority.
|
||||
|
||||
.. _inventory/warehouses_storage/removal-date:
|
||||
|
||||
@@ -34,9 +108,6 @@ number of days specified in the :guilabel:`Expiration Date` field of the product
|
||||
The removal date takes this expiration date, and subtracts the number of days specified in the
|
||||
:guilabel:`Removal Date` field of the product form.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Expiration dates <../../product_management/product_tracking/expiration_dates>`
|
||||
|
||||
.. example::
|
||||
In the :guilabel:`Inventory` tab of the product, `Egg`, the following :guilabel:`Dates` are set
|
||||
by the user:
|
||||
@@ -45,7 +116,6 @@ The removal date takes this expiration date, and subtracts the number of days sp
|
||||
- :guilabel:`Removal Date`: `15` days before expiration date
|
||||
|
||||
.. image:: fefo/user-set-date.png
|
||||
:align: center
|
||||
:alt: Display expiration and removal dates set on the product form.
|
||||
|
||||
A shipment of Eggs arrive at the warehouse on January 1st. So, the expiration date of the Eggs is
|
||||
@@ -54,16 +124,20 @@ The removal date takes this expiration date, and subtracts the number of days sp
|
||||
|
||||
.. _inventory/warehouses_storage/exp-date:
|
||||
|
||||
To view the expiration dates of items in stock, navigate to the product form, and click the
|
||||
:guilabel:`On Hand` smart button.
|
||||
|
||||
Next, click the additional options icon, located on the far-right, and select the columns:
|
||||
:guilabel:`Expiration Date` and :guilabel:`Removal Date`.
|
||||
To view the expiration dates of items in stock, go to :menuselection:`Inventory app --> Products -->
|
||||
Lots / Serial Numbers`. By default, this report is grouped by location. If necessary, remove that
|
||||
grouping in the search bar and group by product. Expand the product to show its lots. Next, click
|
||||
the :icon:`oi-settings-adjust` :guilabel:`(Additional Options)` icon, located on the far-right, and
|
||||
select the columns: :guilabel:`Expiration Date` and :guilabel:`Removal Date`.
|
||||
|
||||
.. image:: fefo/removal-date.png
|
||||
:align: center
|
||||
:alt: Show expiration dates from the inventory adjustments model accessed from the *On Hand*
|
||||
smart button from the product form.
|
||||
:alt: Show expiration dates from the Lots / Serial Numbers list.
|
||||
|
||||
Alternatively, view these dates by clicking the :guilabel:`Lot/Serial Numbers` smart button on the
|
||||
product form.
|
||||
|
||||
.. image:: fefo/removal-date-lots-serial-numbers.png
|
||||
:alt: Show expiration dates from the Lots/Serial Numbers list on the product form.
|
||||
|
||||
Workflow
|
||||
========
|
||||
@@ -72,15 +146,10 @@ Using the :abbr:`FEFO (First Expired, First Out)` removal strategy ensures that
|
||||
nearest removal date are picked first.
|
||||
|
||||
To understand how this removal strategy works, consider the following example below about the
|
||||
product, `Carton of eggs`, which is a box containing twelve eggs.
|
||||
product, `Carton of Eggs`, which is a box containing twelve eggs.
|
||||
|
||||
The product is tracked :guilabel:`By Lots`, and the product category's :guilabel:`Force Removal
|
||||
Strategy` is set to :guilabel:`First Expired, First Out (FEFO)`.
|
||||
|
||||
.. seealso::
|
||||
- :ref:`Set up force removal strategy <inventory/warehouses_storage/removal-config>`
|
||||
- :ref:`Enable lots tracking <inventory/warehouses_storage/lots-setup>`
|
||||
- `Odoo Tutorials: Perishable Products <https://www.odoo.com/slides/slide/5324/share>`_
|
||||
Strategy` is set to :guilabel:`First Expiry First Out (FEFO)`.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
@@ -95,32 +164,38 @@ Strategy` is set to :guilabel:`First Expired, First Out (FEFO)`.
|
||||
- 2
|
||||
- 1
|
||||
* - Expiration date
|
||||
- April 4
|
||||
- April 10
|
||||
- April 15
|
||||
- January 8, 2026
|
||||
- January 15, 2026
|
||||
- January 22, 2026
|
||||
* - :ref:`Removal date <inventory/warehouses_storage/exp-date>`
|
||||
- February 26
|
||||
- March 4
|
||||
- March 9
|
||||
- December 24, 2025
|
||||
- December 31, 2025
|
||||
- January 7, 2026
|
||||
|
||||
To see the removal strategy in action, go to the :menuselection:`Sales app` and create a new
|
||||
quotation.
|
||||
|
||||
Clicking :guilabel:`Confirm` creates a delivery order for today, December 29th, and the lot numbers
|
||||
Clicking :guilabel:`Confirm` creates a delivery order for today, December 9th, and the lot numbers
|
||||
with the soonest expiration dates are reserved, using the :abbr:`FEFO (First Expired, First Out)`
|
||||
removal strategy.
|
||||
|
||||
To view the detailed pickings, click the :guilabel:`⦙≣ (bulleted list)` icon, located on the
|
||||
far-right of the Carton of egg's product line, in the :guilabel:`Operations` tab of the delivery
|
||||
order. Doing so opens the :guilabel:`Open: Stock move` pop-up window.
|
||||
To view the detailed pickings, click the :guilabel:`Details` link, located on the far-right of the
|
||||
Carton of Eggs' product line, in the :guilabel:`Operations` tab of the delivery order. Doing so
|
||||
opens the :guilabel:`Detailed Operations` pop-up window.
|
||||
|
||||
In the :guilabel:`Open: Stock move` pop-up window, the :guilabel:`Pick from` field displays where
|
||||
In the :guilabel:`Detailed Operations` pop-up window, the :guilabel:`Pick From` field displays where
|
||||
the quantities to fulfill the :guilabel:`Demand` are picked from.
|
||||
|
||||
Since the order demanded six Cartons of eggs, using the :abbr:`FEFO (First Expired, First Out)`
|
||||
removal strategy, all five Cartons from `LOT1`, with the removal date of February 26th, are picked.
|
||||
The remaining Carton is selected from `LOT2`, which has a removal date of March 4th.
|
||||
Since the order demanded six Cartons of Eggs, using the :abbr:`FEFO (First Expired, First Out)`
|
||||
removal strategy, all five Cartons from `LOT1`, with the removal date of December 24, are picked.
|
||||
The remaining Carton is selected from `LOT2`, which has a removal date of December 31.
|
||||
|
||||
.. image:: fefo/eggs-picking.png
|
||||
:align: center
|
||||
:alt: The stock moves window that shows the lots to be removed using FEFO.
|
||||
:alt: The detailed operations window that shows the lots to be removed using FEFO.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Removal strategies <../removal_strategies>`
|
||||
- :ref:`Set up force removal strategy <inventory/warehouses_storage/removal-config>`
|
||||
- :doc:`Expiration dates <../../product_management/product_tracking/expiration_dates>`
|
||||
- :ref:`Enable lots tracking <inventory/warehouses_storage/lots-setup>`
|
||||
- `Odoo Tutorials: Perishable Products <https://www.odoo.com/slides/slide/5324/share>`_
|
||||
|
||||
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 8.1 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 12 KiB |