Odoo Customization
Customize Odoo today, upgrade it next year.
We configure standard Odoo first and write code only where settings genuinely cannot reach. Every change, from a new field on the sales order to an approval chain on vendor bills, lives in its own module that inherits core, so the next version is a porting job, not a rebuild.
- Configure first
- Separate modules
- Upgrade rehearsal
- Fixed price per module
- Community & Enterprise
- Core Odoo files edited
- Odoo versions we customize
- Price per module, against a written spec
- Reply time on business days
What we customize
Fields, flows and forms, changed the upgrade-safe way.
Most requests fall into six areas. For each one we first check whether standard settings, Studio or a maintained OCA module already solve it, and only then quote code.
Fields and data model
Extra fields, related records and computed values on sales orders, products, contacts or any other model, with the right access rules.
Workflows and approvals
Multi-step approvals on purchase orders, discounts or vendor bills, with thresholds by amount, company or product category.
Views and screens
Form, list, kanban and search views trimmed to what each role needs, plus buttons that replace five clicks with one.
Reports and documents
Quotations, tax invoices, delivery slips and payslips in your layout and language, including Thai and English on the same PDF.
Access rights and record rules
Groups and record rules so branch staff see only their branch, sales reps see their own customers and costs stay hidden at the counter.
Automation and reminders
Automation rules, scheduled actions and email templates that follow up quotations, flag late deliveries or remind approvers.
Why upgrade-safe matters
Configure first, code last.
A customization that edits Odoo's own files works until the next version, then blocks the upgrade. We keep a written register of every change, pick the right tool for each one, and rehearse the next-version upgrade on a copy of your database before we call the work done.
- Standard settings checked before any code
- Each change isolated in its own module
- Every change listed in a written register
- Upgrade rehearsed on a database copy
Configure
Use what Odoo already offers, Studio included where it fits.
Isolate
Put each real gap into its own inheriting module.
Test
Cover the business rules with automated tests.
Rehearse
Run the next-version upgrade on a copy first.
Examples
Three common requests, done properly.
A bilingual Thai tax invoice
One QWeb template prints the tax invoice in Thai and English with the branch code, the buyer's tax ID and the amount in Thai words, so nobody retypes it in Word.
Discount approval by margin
Quotations below a set margin wait for a manager, who approves from the chatter or the Odoo mobile app, and the rule lives in one small module.
Branch-only visibility
Record rules limit stock, sales and customers to each branch, while head office still sees every branch in one database.
By industry
Customizations shaped by how each sector works.
The documents and rules that need adjusting change with the industry. A few examples of where the standard screens are usually tuned.
- Wholesale & DistributionCustomer pricelists, credit holds and backorder rules on the sales order.
- Retail & E-commercePOS receipts, loyalty rules and stock views per branch.
- ManufacturingWork order fields, BOM approvals and lot labels for the floor.
- ConstructionBOQ columns on quotations and approval chains for site purchases.
- Professional ServicesTimesheet validation rules and invoice layouts per client.
- Food & BeverageExpiry dates on transfers and FEFO-aware delivery slips.
- HotelsOutlet-level POS settings and purchase approvals per kitchen.
- PharmaceuticalsLot release steps and quality fields on every receipt.
How it works
From request to upgrade-ready change.
1. Audit what you run
We read your current configuration and any existing custom modules before proposing anything new.
2. Register the gaps
Each request goes into a written register with the tool we recommend: a setting, Studio or a module.
3. Fix the price
Modules are quoted one by one against the specification. Nothing is billed by the hour.
4. Build and test
Changes are developed in separate modules on staging, with automated tests for the business rules.
5. Rehearse and release
We run the next-version upgrade on a database copy, then release to production and train the users affected.
Toolbox
Tools we use to change Odoo safely.
- Odoo Studio
- Python
- XML
- QWeb
- OWL
- JavaScript
- PostgreSQL
- OCA modules
- OpenUpgrade
- Git
- GitHub Actions
- Odoo.sh
- Docker
Our terms
What stays true after every change.
Customization is where ERP systems quietly pile up risk. These commitments keep yours visible, priced and reversible.
Review my changes- Written status note
- Consultant from audit to release
- Specs and user training
- Apps of our own on the Odoo Apps Store
- Offices across three time zones
FAQ
Questions clients ask first
Will customizations break when we upgrade Odoo?
Not if they are built as separate modules that inherit core views and models. Porting between major versions still takes some work, which is why we rehearse the upgrade on a copy of your database and fix what fails before it ever reaches production.
Should we use Odoo Studio or custom modules?
Studio is the quickest way to add fields, adjust views or build a simple app on Odoo Enterprise, and we use it when it is enough. Logic that calculates, validates or talks to other systems belongs in a coded module with tests, where it can be reviewed and ported.
Can Odoo be customized for several branches or companies?
Yes. Odoo supports multiple companies in one database out of the box, and we add what branches usually need on top: record rules per branch, document numbering per branch, and the branch code Thai tax invoices must show. Head office reporting across companies stays in standard Odoo Accounting.
How is customization priced?
Each module is quoted at a fixed price against a written specification, and small configuration changes are grouped into one line. We do not bill hourly for custom work, so you know what a change costs before you approve it.
Can you customize Thai tax invoices and withholding tax forms?
Yes. We lay out tax invoices, receipts and withholding tax certificates to Revenue Department requirements, in Thai, English or both, and set up PND 3 and PND 53 reporting in Odoo Accounting. e-Tax Invoice and e-Receipt output is handled in the same piece of work when you need it.
Do you customize Odoo Community as well as Enterprise?
Yes, Odoo 16 to 19 in both editions. On Community we avoid dependencies on Enterprise-only apps such as Studio or Quality, and we tell you when an Enterprise feature would cost less than building the same thing yourself.
Get started
Send us the change your team keeps working around.
Describe the workaround, share a screenshot or the spreadsheet that sits beside Odoo. We reply within one business day and come back with a written register of changes and a fixed price for each.
- Reply within one business day
- Fixed price per module, in writing
- Upgrade rehearsal before handover
Prefer to talk first? Call us or WhatsApp us.