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
  1. Configure

    Use what Odoo already offers, Studio included where it fits.

  2. Isolate

    Put each real gap into its own inheriting module.

  3. Test

    Cover the business rules with automated tests.

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

How it works

From request to upgrade-ready change.

  1. 1. Audit what you run

    We read your current configuration and any existing custom modules before proposing anything new.

  2. 2. Register the gaps

    Each request goes into a written register with the tool we recommend: a setting, Studio or a module.

  3. 3. Fix the price

    Modules are quoted one by one against the specification. Nothing is billed by the hour.

  4. 4. Build and test

    Changes are developed in separate modules on staging, with automated tests for the business rules.

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

Your details stay private. We reply within one business day.