Monday, August 25, 2025
4 changes · 18.0
Enhancements to existing features
Xendit payment forms now report token creation errors immediately, such as when entered details are invalid. This prevents failed or incorrect payment data from continuing through the checkout process, giving customers faster feedback and reducing avoidable payment issues.
Original PR description
Previously, if error was found during token creation (i.e. invalid input) , it's not immediately reported but instead invalid data will be used for further process. Now, any errors caught early will be reported immediately back. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
When an Indian EDI e-invoicing retry is triggered, Odoo now records a message on the related accounting document. This helps businesses see which user retried the process, improving traceability especially when repeated requests can lead to temporary GST request blocks.
Original PR description
Following the implementation of [Black list request by GST](https://github.com/odoo/iap-apps/pull/1039) the users are blocked for 24 hours on generating too many request. When processing through EDI there is no log when clicked on the retry button, Which is more essentially needed now to know by which user the EDI was retried and we logged the same on the move --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#223886 Forward-Port-Of: odoo/odoo#207184
This update makes product quantity calculations much faster when working with very large product catalogs, especially when manufacturing kits are involved. Businesses with hundreds of thousands of products should see significantly shorter search and inventory availability response times.
Original PR description
In the stock module one of the bottleneck of the `_compute_quantities` is the call to `product.update`. While this is not really an issue when the number of products is small, it becomes slow when…
In the stock module one of the bottleneck of the `_compute_quantities` is the call to `product.update`. While this is not really an issue when the number of products is small, it becomes slow when this number grows above 100 000 products. This can happen when searching on one of the computed non-stored fields for instance. In this case, the underlying issue is the unbatched call to `__setitem__` that calls `Float.convert_to_cache` that calls `get_digits` and `float_round`. These two methods are not that costly for small recordsets but can take a bit of time for larger ones. The solution proposed in this commit is to grouped the quantities_dict by values then call update on batches of product.products. This leads to a noticeable speedup, mostly for the > 100 000 records recordsets. Another bottleneck appears when the mrp module is installed. When there's a lot of products, the calls to `mrp.bom.explode` can stack up and lead to slow execution. A solution for this is to memoize the exploded values of the boms. We can do that because this value is actually independent of the current product, as we are not using the first list returned by the `explode` method. This leads to a noticeable speedup, especially in database where there are a small number of boms for a large number of product.products. speedup Time to search for products with `free_qty` > 0.0. Database with mrp installed and kit boms. Most of the kit boms are for templates. 800 000 products in the db, 15 000 templates. | Total number of products | Before PR | After PR | |:------------------------:|:---------:|:---------:| | 100 | 51ms | 48ms | | 1000 | 220ms | 200ms | | 10000 | 1.2s | 900ms | | 100000 | 10s | 5.77s | | 800000 | 15min | 1min15s | The customer database has 3 boms for templates that have more than 20 000 variants each. In this case, memoizing the explode gives a significant speedup. That's what happens in the 800 000 case above. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Italian VAT XML export now correctly adapts between monthly and quarterly submissions, including separate quarterly sections where required. The exported file name is also corrected, and the VAT threshold handling is updated to match the latest expected amount.
Original PR description
Description of the issue this commit addresses: The XML export should contain three "Modulo" sections when the report is submitted quarterly but currently only ever sends one big chunk of data. Also the name of the exported file is wrong. --- Desired behavior after this commit merged: The exported file adapts to whether it is submitted monthly or quarterly and the name of the file issue is addressed. --- Community PR: https://github.com/odoo/odoo/pull/216887 task-4826511 Forward-Port-Of: odoo/enterprise#86642