Tuesday, April 21, 2026
3 changes · 19.0
Enhancements to existing features
Online store categories can now recognize published products inside their subcategories, not just directly assigned products. This helps shoppers and website managers see category availability more accurately across nested catalog structures.
Original PR description
<img width="847" height="39" alt="Selection_5665" src="https://github.com/user-attachments/assets/745539e1-1828-440b-872b-5bdf4a45b0c7" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds support for a database SSL root certificate setting and refreshes several software dependencies used by the platform. These changes help improve secure database connectivity and keep underlying components current for reliability and compatibility.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change speeds up the validation of large stock transfers by processing many item updates in batches instead of one by one. It reduces database round-trips and prevents slowdowns or timeouts for deliveries with many lines, improving reliability for busy operations.
Original PR description
Before this PR, `button_validate` was using a `write()` call per matched stock move. On every `write()` there is a Command.create and Command.delete which is resulting in N database round-trips for…
Before this PR, `button_validate` was using a `write()` call per matched stock move. On every `write()` there is a Command.create and Command.delete which is resulting in N database round-trips for the unlinks and N for the creates, followed by N separate `_apply_putaway_strategy()` calls. This is problematic for pickings with many move_ids. This PR attempts to accumulates all move lines to delete and to create. Then performs a single `unlink()` and `create()`, followed by a single `_apply_putaway_strategy()` for all pickings. Unlink is done using `.sudo()` to preserve the superuser context that was previously inherited implicitly through the `purchase_order.sudo().search` that produced the recordset used to obtain the `receipt_move`(s). Benchmarks: | No. move lines in delivery | Before | After | | -------------------------- | ------- | ----- | | 7579 | Timeout | < 200 s | opw-5826905 Forward-Port-Of: odoo/enterprise#110587 Forward-Port-Of: odoo/enterprise#110153