Summary
The v19 release notes and Sales documentation describe the new optional sections mechanism, but nowhere state that the previous Optional Products tab and its underlying sale.order.option model were removed. This is a breaking change for anyone upgrading from v18 who relied on that tab or built customisations against sale.order.option, and it is not discoverable from the published changelog.
Evidence of removal (19.0 branch)
- The
sale.order.option model no longer exists. The addons/sale_management/models directory in the 19.0 branch contains only sale_order.py, sale_order_line.py, sale_order_template.py and sale_order_template_line.py (plus digest.py, res_company.py, res_config_settings.py). There is no sale_order_option.py.
- The refactor is explicit in the commit history. The commit on
addons/sale_management/models/sale_order_template_line.py is titled "[REF] sale(_management): replace optional products with optional sections".
- The replacement mechanism is confirmed in that same file: optional items are now ordinary lines carrying an
is_optional boolean and a display_type of line_section / line_subsection, and _prepare_order_line_values passes is_optional straight onto the sale.order.line.
Documentation gaps confirmed (as at 10 July 2026)
- Not stated in the official v19 release notes; the Sales section describes only the new sections feature as an addition.
- Not listed in the developer ORM changelog, where breaking model changes and deprecations are normally recorded.
- The Optional Products documentation page was rewritten to the new section-based behaviour with no deprecation notice, no "changed in v19" callout, and no migration guidance.
Why this is a breaking change, not a documented enhancement
A function was removed (sale.order.option and the sale_order_option_ids relation) and a different one substituted that does not behave the same way. Optional items now render before the grand total with a quantity of 0 rather than as a clean options list after the total, which is harder for customers to read. Any v18 customisation referencing sale.order.option breaks silently on upgrade, with no changelog entry pointing to the cause.
Request
Add an explicit note to the v19 release notes and the Sales documentation stating that the Optional Products tab and the sale.order.option model have been removed and replaced by optional sections, so the change is discoverable during upgrade planning and migration scoping.
Summary
The v19 release notes and Sales documentation describe the new optional sections mechanism, but nowhere state that the previous Optional Products tab and its underlying
sale.order.optionmodel were removed. This is a breaking change for anyone upgrading from v18 who relied on that tab or built customisations againstsale.order.option, and it is not discoverable from the published changelog.Evidence of removal (19.0 branch)
sale.order.optionmodel no longer exists. Theaddons/sale_management/modelsdirectory in the 19.0 branch contains onlysale_order.py,sale_order_line.py,sale_order_template.pyandsale_order_template_line.py(plusdigest.py,res_company.py,res_config_settings.py). There is nosale_order_option.py.addons/sale_management/models/sale_order_template_line.pyis titled "[REF] sale(_management): replace optional products with optional sections".is_optionalboolean and adisplay_typeofline_section/line_subsection, and_prepare_order_line_valuespassesis_optionalstraight onto thesale.order.line.Documentation gaps confirmed (as at 10 July 2026)
Why this is a breaking change, not a documented enhancement
A function was removed (
sale.order.optionand thesale_order_option_idsrelation) and a different one substituted that does not behave the same way. Optional items now render before the grand total with a quantity of 0 rather than as a clean options list after the total, which is harder for customers to read. Any v18 customisation referencingsale.order.optionbreaks silently on upgrade, with no changelog entry pointing to the cause.Request
Add an explicit note to the v19 release notes and the Sales documentation stating that the Optional Products tab and the
sale.order.optionmodel have been removed and replaced by optional sections, so the change is discoverable during upgrade planning and migration scoping.