OdooWiki OCA HUB

Product Order No Name

product_order_noname folder_open OCA/product-attribute open_in_new
Technical Settings License: LGPL-3

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.0

Speeds 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

product
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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 4 confirmed, 5 with no information of 9 versions.

Sources · Odoo 12.0

Confirmed on 2026-11-03 in branch 12.0 of OCA/product-attribute.

terminal Installation and usage

OCA documentation · Odoo 15.0

Just 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.

info

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.