Skip to Content

Odoo App Development 101: When Off-the-Shelf Isn't Enough


Standard Odoo covers more than most businesses expect. Sales, inventory, manufacturing, accounting, procurement and HR all work out of the box. And then there is the one process that doesn't. The quote that depends on a calculation only your engineers understand. The partner who sends orders in a format your system can't read. The team that keeps a spreadsheet next to Odoo because Odoo has no place for what they track.

That spreadsheet is a signal. It isn't a failure of Odoo, and it isn't a reason to throw the system out. It is the moment Odoo app development starts to make sense, and the moment a wrong choice starts to get expensive.

The Four Ways to Extend Odoo (and the One to Try First)


Not every gap needs code. There are four ways to close one, and they are not equal in cost.

1. Configure what is already there. Settings, standard fields, existing workflows. Always the first stop, because nothing you configure can break an upgrade.

See Odoo ERP implementation

2. Use Odoo Studio. Studio is a no-code toolbox for adding or changing fields, views, models, automation rules, webapps, PDF reports, approval rules and security rules.[1] For contained needs, such as an extra approval step or a custom field on a form, this is often all you need. One practical note: Studio sits on Odoo's Custom pricing plan, so factor that into the budget.[1]

3. Build a custom module. When the logic, the screen or the integration goes beyond what Studio can express, you write code. This is real Odoo app development: your own models, business rules and interfaces, built on Odoo's framework so they behave like native features.

4. Integrate an outside system. Sometimes the missing piece isn't inside Odoo at all. It is another platform that has to be part of the same flow.

Most of the cost, and most of the risk, sits in rung three. That is why it should be the last rung you reach for, not the first.

Five Signs Standard Odoo Isn't Enough


1. A spreadsheet lives beside Odoo. If someone re-keys data from Odoo into a sheet to finish a task, the process has outgrown the standard screens. Count how many people do it, and how often. That number is your business case.

2. A calculation is your competitive edge. Some quotes can't come from a price list. Modularex, a robotic automation company, needed its quotes to help customers compare the cost of automated work against manual labor. TekGenio built a custom Odoo workflow that runs from lead generation through sales quotes, project management and testing.[2] When the logic is what you sell, it deserves to live in the system.

3. Your team works where Odoo's screens don't reach. Modularex also wanted a place inside Odoo for collaboration, note-taking and documentation. TekGenio developed an interactive Canvas Workspace with freehand sketching, multimedia support and dynamic text editing, in the spirit of OneNote, with sketches, voice notes and video notes living next to the records they belong to.[2]

4. Another system has to talk to Odoo on its terms. For one client, TekGenio connected Odoo to SAP Ariba over EDI, covering purchase and receiving, manufacturing, sales and distribution, and inventory and scrap reporting. Odoo keeps running operations while the trading partner's ecosystem stays informed electronically.[3]
See the SAP Ariba to Odoo EDI case study See Odoo Procurement See Odoo Manufacturing See Odoo Inventory

5. Conversations happen outside the record. When client email and calendars live in Outlook while the CRM lives in Odoo, context gets lost between them. Modularex asked for exactly this to be fixed, and TekGenio integrated Outlook mail and calendar with Odoo so that Odoo became the central CRM.[2]

The Part Nobody Puts in the Proposal: Who Carries Custom Code Through the Next Upgrade


Custom modules are not a one-time purchase. They are a commitment, and the bill arrives at upgrade time.

The rules are clear and worth knowing before you build. A database that contains custom modules cannot be upgraded until a version of those modules exists for the target version of Odoo. Odoo's upgrade service covers standard apps, Studio customizations while Studio stays installed and the subscription stays active, and developments covered by a maintenance-of-customizations subscription. Modules built in-house or by third parties, partners included, are not covered unless a maintenance contract applies.[4]

This is a live question right now. Odoo 20 arrived this fall, and integrations deserve a second look with it: the legacy XML-RPC and JSON-RPC external APIs are deprecated, the database service was removed in Odoo 20, and the External JSON-2 API is the replacement.[5] If an integration was built on the old endpoints, plan its move before the upgrade, not after.

Hosting matters too. Databases on Odoo Online do not support custom modules, so a coded module means Odoo.sh or on-premise hosting.[6]

How to Keep Custom Odoo Work Upgrade-Friendly


  • Climb the ladder one rung at a time. If configuration solves it, stop. If Studio solves it, stop. Write code only for what is left.
  • Give every customization a reason and an owner. When upgrade day comes, each one should be defensible, or removable.
  • Keep modules small and single-purpose. A module that does one thing is far easier to port than one that does everything.
  • Check hosting before you design. Choose the environment first, so you don't discover at the end that your module can't run there.
  • Plan the upgrade on day one. Decide who maintains the code, and how it will be tested against each new Odoo version.

Moving data too? If the project also involves moving data between systems, plan the migration and the build together.
See MigrateX

Frequently Asked Questions About Odoo App Development


Q: What is Odoo app development?

A: It is the work of building custom modules or apps on Odoo's framework, adding models, business logic, screens or integrations that the standard apps do not provide.

Q: Should I use Odoo Studio or a custom module?

A: Use Studio for fields, views, reports, approvals and contained automations. Choose a custom module when you need complex logic, deeper integrations or functionality that has to be maintained as code.

Q: Does Odoo Online support custom modules?

A: No. Databases hosted on Odoo Online do not support custom modules. Odoo.sh and on-premise hosting do.

Q: Will my custom modules survive an Odoo upgrade?

A: Not automatically. A database with custom modules can't be upgraded until those modules are available for the target version, and Odoo's upgrade service does not cover them unless they sit under a maintenance contract.

Not Sure Which Rung Your Process Belongs On?


Some gaps need a setting. Some need Studio. A few need real engineering. The expensive mistake is guessing. A scoping session settles three questions before any code is written: which option each requirement actually needs, where it has to run, and who will carry it through the next upgrade.

Book a scoping session

Sources

[1] Odoo 19.0 documentation, "Studio" (includes the Standard to Custom plan upsell note).
https://www.odoo.com/documentation/19.0/applications/studio.html

[2] TekGenio, Odoo partner profile, case studies for Modularex (custom workflow, Canvas Sketching Pen, Outlook integration).
https://www.odoo.com/partners/tekgenio-11262147

[3] TekGenio, "Case Study: SAP Ariba-Odoo EDI Integration."
https://tekgenio.com/blog/blog35

[4] Odoo 19.0 documentation, "Upgrade" (SLA coverage and custom modules).
https://www.odoo.com/documentation/19.0/administration/upgrade.html

[5] Odoo 20.0 documentation, "External RPC API."
https://www.odoo.com/documentation/20.0/developer/reference/external_rpc_api.html

[6] Odoo 19.0 documentation, "Create a project" (Odoo.sh), which states that databases on Odoo Online do not support custom modules.
https://www.odoo.com/documentation/19.0/administration/odoo_sh/getting_started/create.html

Share This Post

Tags

AI & Machine Learning Data Management Data Governance AI Readiness Data Quality

Copyright © TekGenio 2025 - All rights reserved.

This website is made using Odoo.