This module compute a status on product based on some date field displayed on the Sales tab. This module will deactivate all default state in product_state, implement new default data The option to use the product-attribute/product_state module was considered but because the status is computed based on today. It does not work well with a stored fields and also means there is no need for creation of state from the user.
By order of importance, the status is computed by: - End-of-life - Discontinued until - New until
End-of-life has priority over the other dates. Discontinued-until has priority over New until.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Automatically sets a product's status (New, Discontinued, Phase Out, End-Of-Life) from three dates on the Sales tab, so users no longer pick the status by hand.
This module turns the product status into something Odoo calculates for you. On the Sales tab of a product (both product.template and product.product) you get three new date fields: New until, Discontinued until and End-of-life, plus a read-only Product Status.
- If End-of-life is in the past, the status becomes End-Of-Life; if it is in the future, the status becomes Phase Out.
- Otherwise, if Discontinued until is today or later, the status becomes Discontinued.
- Otherwise, if New until is today or later, the status becomes New.
- If none of the dates apply, the product falls back to its normal state.
End-of-life always wins over the other two dates, and Discontinued until wins over New until. Filling in End-of-life clears the other two dates, and filling in Discontinued until clears New until, so the dates stay consistent.
The status bar on the product form is no longer clickable, because the status is driven by the dates. The State column is also shown in the product list. Four ready-made states (New, Discontinued, Phase Out, End-Of-Life) are installed, and the default states coming from the product_state module are deactivated. Those installed states cannot be deleted or renamed by regular users. A daily scheduled job, Recompute Product State, refreshes products whose dates have passed.
Depends on
Models and fields (3)
- product.state · extends an existing model
- product.product · extends an existing modelstate (Product Status), new_until (New until), tmpl_new_until (Template New until), has_status_date, end_of_life_date (End-of-life), product_state_id (State), discontinued_until (Discontinued until), tmpl_end_of_life_date (Template End-of-life), tmpl_discontinued_until (Template Discontinued until)
- product.template · extends an existing modelnew_until (New until), end_of_life_date (End-of-life), discontinued_until (Discontinued until)
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-03Confirmation status: 5 confirmed, 4 with no information of 9 versions.
Sources · Odoo 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/product-attribute.
terminal Installation and usage
No verified informationInstallation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
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.