27 September 2026 · 3 min · Custom Odoo
Adding custom fields in Odoo, the clean way
To add a field in Odoo you can use developer mode (an “x_” field plus a view change — fragile), Studio in Enterprise, an app such as Ramira Studio Custom Fields in Community, or a custom module as soon as the field carries a business rule, a computation or an automation. First, check that Odoo does not already offer an equivalent field. Here are the four methods, their limits and good practice.
First: does the field already exist?
Odoo has hundreds of fields, many hidden depending on settings. Before creating “customer reference” on an order, check the existing Customer Reference field; before “requested delivery date”, look at the commitment date. Enabling an option in settings often reveals the field you are looking for.
Method 1 — Developer mode
With developer mode on, you can create a field in Settings › Technical › Fields; its name must start with x_. You then add it to a screen by editing the view XML from the technical menu. Free and immediate, but it requires reading XML, a mistake can break the screen, direct view changes are fragile during upgrades, and nothing is versioned. Keep it for quick fixes by someone who knows Odoo.
Method 2 — Odoo Studio (Enterprise)
Drag a field onto the screen, pick its type, done. Studio stores the customisation in a module managed for you. The most comfortable method — if you are on Enterprise.
Method 3 — A custom fields app (Community)
Our Custom Fields app, on the official store for Odoo 18, 19 and 20, brings that comfort to Community: text, number, date, checkbox, selection, link to another model and tags; placement on any screen; customisations stored as data that survive upgrades and can be exported and imported. It is part of the family described in a Studio for Odoo Community.
Method 4 — A custom module
As soon as the field does more than store a value, a module is more robust: a computed field (margin percentage, warranty end date from delivery date), a constraint (project number mandatory for some customers), automatic propagation (from order to delivery and invoice), an automation (create a task when a box is ticked). A module is tested, versioned and migrated properly. See our custom Odoo modules and how much a custom Odoo module costs.
Using the field on documents
A field is only useful if it is used. Show it on PDF documents (see customising Odoo invoices), on labels for product data (see Odoo product labels and barcodes), in filters and group-bys, and protect it if sensitive (see managing access rights in Odoo).
Choosing the method
| Need | Recommended method |
|---|---|
| Information to enter and display | Custom fields app or Studio |
| One-off fix by an expert | Developer mode |
| Computed or validated field | Custom module |
| Field propagated across documents | Custom module |
Good practice
- Name clearly and add a tooltip.
- Pick the right type: a selection rather than free text when values are known, so you can filter.
- Group added fields in a dedicated tab if the screen gets busy.
- Test on a test database, then transfer.
- Document the list of added fields: it will help at the next migration (see migrating an Odoo module).
In short
Check what exists, then choose by need: no-code to store information, a module for a business rule. Have a list of fields to add? Send it to us — we will tell you what fits the app and what deserves a module.
FAQ
What happens to my fields during a migration?
Fields created properly (by a module or an app that manages them as data) are migrated with the database. View changes made by hand in developer mode are the weakest point: check them after every migration.
Can I filter and group by a custom field?
Yes, if it is stored in the database. You can use it in filters, group-bys, exports and pivot tables.
How many fields can I add?
Technically many, but each field makes screens heavier. Add the ones that really matter and group them in a tab if needed.
Sources
Mohamed Rahmouni — founder of Ramira, app developer and Odoo consultant in Niort, France. More