This module improves retrieving products when a language is installed and configured. The default behaviour is to order products by name, which in this case would be slow because Odoo will process the product's name to translate it.
Warning: This changes the way products are ordered product are ordered "default_code, id" instead of "default_code, translated(name), id"
Because Odoo needs the following query to get a translated(name)
Using a production database executing this query the result is:
- Planning Time: 1.088 ms
- Execution Time: 1027.282 ms
- Total Time: 1028.37 ms
It is so slow.
Using the new order: "default_code, id" the following query is executed now:
The new result is:
- Planning Time: 0.095 ms
- Execution Time: 0.529 ms
- Total Time: 0.624 ms
It is 1.65k times faster
It is because the field name has the parameter translate=True
So, It will process the original value to translate it
Then, It will order by a column computed on-the-fly of other tables
default_code is a column indexed so the result is faster
Opening the /shop page could consume 7.5s instead of 1.2s without this module
Odoo is using the _order parameter even if you don't need it.
- products.search(...).write(...)
- browse().*2many_product_ids.ids
More info about this on:
https://github.com/odoo/odoo/pull/61618
auto_awesome What this module does
AI-generated from the code · Odoo 15.0Speeds up product searches and product lists by changing how Odoo sorts products, avoiding slow translated-name sorting. Users see faster product lookups, especially in databases with several languages installed.
This is a technical performance module. It does not add new screens or buttons; instead it changes the default sorting order used when Odoo lists or searches products.
Normally Odoo sorts products by their name, and when translations are enabled the name must be translated for every row, which can make product searches very slow. This module changes the sorting so products are ordered by internal reference (default_code) and then by record id, skipping the translated name.
- Products (
product.product) are now ordered by priority, then internal reference, then id. - Product templates (
product.template) are ordered by priority, then internal reference. - The internal reference field on product templates is indexed, which helps lookups by reference.
Because the order no longer depends on the translated name, product lists, searches and pickers that rely on the default order should load faster. The visible order of products in lists may change: products without an internal reference may appear in a different position than before, and alphabetical ordering by name is no longer guaranteed.
No menus, reports, emails, scheduled actions or business rules are added by this module. It only affects the product.product and product.template models and their default ordering.
Depends on
Models and fields (1)
- product.template · extends an existing modeldefault_code
Text generated by AI (DeepSeek) from reading the Odoo 15.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: 4 confirmed, 5 with no information of 9 versions.
Sources · Odoo 15.0
Confirmed on 2026-11-03 in branch 15.0 of OCA/product-attribute.
terminal Installation and usage
OCA documentation · Odoo 15.0Usage
Source · Odoo 15.0Just by installing the module you should see a performance increase when retrieving products, from the website shop or the product's list view for example.
No verified information in OCA: Installation, Configuration.
Installation 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.