OdooWiki OCA HUB

Stock Move Line Expiration Date Required

stock_move_line_expiration_date_required folder_open OCA/stock-logistics-workflow open_in_new
Warehouse Management License: LGPL-3

This module causes Stock Move Lines with products that have been configured to use an expiration date and have the expiration time set to 0 days after receipt to have their expiration date filled in manually and not be auto-calculated.

Expiration date on product that have been configured to use an expiration date will be a required field.

If you configure a product to use an expiration date and you do not set the expiration time (0 days after receipt) then you will be required to manually enter the expiration date on the stock move line, otherwise, expiration date will be auto-calculated as usual.

Pickings with products configured with an expiration date will not be allowed to be confirmed if any of his stock move lines (related to products with expiration date) have an empty expiration date.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

For products tracked with expiration dates, this module makes the expiration date a required, manually entered field on incoming stock move lines when the product has no shelf-life days configured, and blocks confirming the transfer until every such line has a date.

When a product is set up to use expiration dates, Odoo normally calculates the expiration date automatically. This module changes that behaviour for products where the "expiration time" (days after receipt) is left at zero: in that case the expiration date must be typed in by the user instead of being calculated.

Where it appears: - On the detailed operations screen of a transfer (the stock move lines list), the expiration date column is shown for incoming and dropship transfers and is marked as required for incoming ones. It stays read-only when existing lots are being used. - On the stock move form, a warning banner appears while any line still has no expiration date, telling the user the parent transfer cannot be confirmed yet.

Automatic behaviour and rules: - When a product does have a positive expiration time, the expiration date is still filled in automatically (today plus that number of days) when the product is chosen or when serial/lot lines are generated. - When the expiration time is zero, no date is proposed and the user must enter it. - Confirming a transfer is blocked with an error listing the move lines that have no expiration date, if those lines belong to products that use expiration dates.

The module extends stock.move, stock.move.line and stock.picking and relies on the product expiration feature.

Depends on

product_expiry
Models and fields (2)
  • stock.move · extends an existing modelall_expiry_dates_set
  • stock.move.line · extends an existing model

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 3 confirmed, 6 with no information of 9 versions.

Sources · Odoo 16.0

Confirmed on 2026-11-03 in branch 16.0 of OCA/stock-logistics-workflow.

terminal Installation and usage

OCA documentation · Odoo 19.0

Go to a warehouse entry that has a product with expiration date configured to 0 days after receipt and fill in its expiration date manually.

Check the expiration date is required now and doesn't let to continue until you fill it.

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.