One widget for every Many2One field in Odoo

Give customers, vendors, products, and contacts a visual identity everywhere they appear — inside the field and in the search dropdown — so staff stop guessing between near-identical names.

The problem

Many2One fields render as plain text dropdowns everywhere in Odoo. When a sales rep opens an order line, a buyer picks a vendor, or an agent selects a contact, they read a list of near-identical names with no visual anchor — and occasionally pick the wrong one. Existing icon apps only cover one record type each, so covering customers, vendors, and products means buying and maintaining several separate modules.

The solution

A single reusable widget you attach to any Many2One field. An admin picks, per target model, whether to show the record's image, a colored initials badge, or a Font Awesome icon — with a live preview before saving. Every configured field then shows its icon both in the populated value and beside every candidate in the search dropdown, and blank images always fall back to a generated avatar so no row ever looks empty.

Capabilities

Everything you need to add icons to any field

Every capability below is implemented in the module.

01

Universal Many2One Widget

One widget usable on any Many2One field — customers, vendors, products, contacts, categories, and beyond — instead of a separate app per record type.

02

Icon Inside The Field

The selected record's icon shows directly inside the populated field, giving instant visual confirmation of the choice.

03

Icons In The Search Dropdown

Every candidate in the autocomplete list shows its icon while you search — the exact moment mis-selection happens is now visual.

04

Record Image Source

Draws the record's own picture — contact avatar or product image — so no duplicate icon upload is ever required.

05

Initials Avatar Source

A colored initials badge for models with no image field, so every record still gets a distinguishing mark.

06

Font Awesome Icon Source

Map any Font Awesome glyph and color — countries as flags, categories as tags — for models that have no image at all.

07

Guaranteed Non-Empty Fallbacks

Blank images automatically fall back to a generated colored-initials avatar, so a row never renders empty.

08

Admin Mapping With Live Preview

A dedicated configuration screen lets an admin pick the icon source per model and preview the exact rendered result before saving.

09

Ready-To-Use On Sales, Purchase & Contacts

Ships already applied to the sales order customer and product lines, the purchase order vendor, and the contact form's country field.

Workflow

How it works

1

Open Icon Mappings

Go to the Icon Widget app and open the Icon Mappings list.

2

Choose A Source Per Model

Pick record image, initials avatar, or a Font Awesome icon for the target model.

3

Preview Before Saving

The live preview panel renders an actual record with the current settings.

4

See Icons Everywhere

Every form and dropdown using that field updates instantly, no restart needed.

Questions

Frequently asked

No sales fog. If your question isn't here, email us and we'll answer it the same way.

Any Many2One field in Odoo. Add the widget="m2o_icon" attribute to a field in any view, then configure its source once in Icon Mappings — contacts, vendors, products, categories, and any other relation all work the same way.

Get the app

Buy it on the Odoo App Store

Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.

Many2One Icon Widget

One widget that puts record images, initials avatars or Font Awesome icons inside any Many2One field and its search dropdown, with guaranteed fallbacks and a live-preview mapping screen.

Buy on Odoo App Store