Widget category
Odoo Sales / CRM widgets
Sales and CRM widgets render pipelines and quotations: stage bars, expected revenue, product configurators, margins and the order-line helpers sales teams live in.
Most accept options that change selling behaviour (not just looks), so each page lists the exact option names verified against the source.
14 widgets documented53 uses in Odoo coreVersions 16.0 → 20.0 verified per widget
Every sales / crm widget, by use in Odoo core
| Widget | What it does | Field types | Uses in core |
|---|---|---|---|
| res_partner_many2one | Type three letters into a customer field and Odoo suggests real companies with their logo, address and VAT. That is res_partner_many2one: a standard many2one wrapped with Odoo's company autocomplete service. It lives in a module most people have never looked at. | many2one | 20 |
| so_line_field | The Sales Order Item column on Odoo timesheets is rendered by so_line_field, a many2one variant that quietly records whether a human picked the item. Here is what it actually does. | many2one | 8 |
| badge_rotting | The badge_rotting widget renders a stage column that carries a red 12d pill when the record has been sitting in that stage too long. It is the list-view member of Odoo 19's rotting family. | many2one | 3 |
| loyalty_one2many | The Rules and Rewards blocks on an Odoo loyalty program form look custom, but loyalty_one2many is just the standard x2many widget wearing a different template: a heading with the field label and an always present Add button. | one2many, many2many | 3 |
| many2one_avatar_leader_user | A user picker that knows who runs the team: many2one_avatar_leader_user renders the standard avatar dropdown and marks the selected sales team's leader with a (Team Leader) tag. | many2one | 3 |
| rotting | Odoo 19 marks records that sit too long in a pipeline stage as rotting. The rotting widget is the red day-count badge that appears on their kanban cards. | integer | 3 |
| rotting_statusbar_duration | The rotting_statusbar_duration widget is the Odoo 19 form statusbar that shows how long a record spent in each stage and warns, on hover, when the record has gone stale. | many2one | 3 |
| so_line_create_button | On a billable project task, the Sales Order Item field carries a small plus button. That is so_line_create_button: a many2one that can spawn a whole sales order in a dialog and wire the task to its first service line automatically. | many2one | 3 |
| sol_product_many2one | Every product you pick on an Odoo quotation goes through sol_product_many2one: the widget that decides whether you get a plain product, a variant configurator, a combo picker, or a grid. | many2one | 2 |
| loyalty_data_field | The loyalty summary on a sale order: points, rewards, whatever the server computed. It is a display with no options at all, and it does not survive into the next version. | json | 1 |
| quotation_document_many2many | The upload area for the PDF pages Odoo wraps around a quotation. It borrows the product document kanban wholesale and changes three things: where uploads go, what they attach to, and that only PDFs are accepted. | many2many, one2many | 1 |
| so_template_line_o2m | Quotation templates gained optional sections in Odoo 19, and this widget is what keeps them honest: move a line into one and its quantity becomes zero, move it out and the quantity comes back. | one2many | 1 |
| sol_o2m | The order lines table on every Odoo quotation. Most of what it adds to the generic sectioned list is one feature: making combo products behave like a single line that happens to have parts. | one2many | 1 |
| sol_text | The description cell on a quotation line. It behaves like the shared section and note text field everywhere except on a combo line, where it deliberately drops to a single line input. | text, char | 1 |
Each widget page has the usage XML, Studio steps, every developer option, and a per-version compatibility table verified against the shipped Odoo source.
Other widget categories
Need these working in your Odoo?
The team that documented every widget also builds with them — custom views, upgrades and performance work by senior Odoo developers.
