If you need to customize Odoo, you can develop an Odoo app yourself, have one developed, or use an app from the Odoo Apps Store. Odoo apps are created by developers, and the customizations are done in code. This code is readable (so you can see what has been changed) and safeguarded with a version control system (GitHub).
There are several problems with Odoo Apps from the Odoo App Store (also called third-party apps, or 3p apps). We wrote another blog about this.
Read our blog: Why did we stop using apps from the Odoo App Store?
Odoo also offers the Odoo Studio tool. With Odoo Studio, you can customize Odoo through Odoo's own interface. You can create fields, modify views, or even create entirely new functionality. These customizations are not done in code; instead, these changes are stored in the Odoo database.
If you can customize Odoo directly from within Odoo itself, why would you hire a developer to make the customizations? With Odoo Studio, you can easily do it yourself. Yes, that is indeed how it seems.
Odoo Studio looks great, but it is not the holy grail, and in this blog I explain why.
You can't do everything with Odoo Studio
You can build quite a lot with Odoo Studio. You can create entirely new functionality or extend existing functionality. But while it can be very useful, you still can't do everything. Creating complete processes, where data has to flow from one model to another, is practically impossible. Odoo Studio is limited to separate new functionality or modifying existing functionality, which makes it only usable to a limited extent and causes the overview to be lost quickly.
Conflicts with other customizations
Odoo Studio customizations are only stored in the Odoo database. If a developer creates a custom app for Odoo, they always develop it for a standard Odoo version or a version with all other customizations coded as modules. A developer does not have the customer's production database, so they also do not have the customizations made in Odoo Studio. This makes it harder for a developer to create a good solution, and this can cause technical conflicts.
Difficult to maintain
Writing code properly brings a number of important advantages, such as creating automated tests to safeguard the functionality after changes and grouping functionalities together to keep a complete process in one place. As mentioned earlier, Odoo Studio customizations are only stored in the Odoo database and not in code. As a result, these advantages are not present. Changes can have unforeseen consequences for the overall process and it is more difficult to get a complete overview of all the customizations that have been made. This makes the Odoo system more difficult to maintain.
Breaks during an Odoo upgrade
When Odoo is upgraded to a new version, the Odoo migration platform also tries to migrate all Odoo Studio customizations. But because every Odoo user can make their own unique customizations, it is impossible for the migration platform to migrate everything properly. So you see that multiple Studio customizations cannot be migrated and have to be recreated after migration.
Lack of familiarity with the Odoo database
Adding fields to the database, creating computed fields and/or relational fields, it can all be done fairly easily with Odoo. But if you do not know how the Odoo database works and what you can and cannot do in a database, then you will certainly break Odoo. To make it possible to create customizations in a generic way, Odoo cannot possibly take the performance of individual situations into account. The risk of causing slowdowns in the system is therefore enormous, and there is no safeguard against that.
In my opinion, it is almost impossible for a functional Odoo user with no technical knowledge to make the right choices when creating complex database fields in Odoo.
And I will be completely honest. I am writing this down because I have made these mistakes myself several times already... unfortunately 😰.
Creating something that already exists
Suppose you are looking for something, but you cannot find it in Odoo. Does that mean it does not exist in Odoo, or that you need to install an extra Odoo App?
Check the overview of all Odoo Apps here
Or perhaps you do not have the permissions to see certain information? Imagine those two situations. This is where Odoo Studio comes in handy. You quickly create the missing functionality yourself, with the result that you have created something that already exists in Odoo.
This may seem a bit exaggerated, but believe me, we encounter it very often.
Completely breaking Odoo
Yes, you can completely break Odoo with Odoo Studio. Sometimes your customization works well at first and you think nothing is wrong. Until suddenly many people start working with Odoo.
An example I once saw was a user thinking: "It would be useful to see the available stock on an order line". The field with the (dynamic) stock was added to the order line as a relational field, in such a way that the stock value is stored on the order line.
Done like that at a quiet moment during the weekend, without anyone being affected by it. Until Monday, when everyone started working with Odoo and Odoo began updating all order lines with every stock change. After a few hours, Odoo had become unbearably slow. Unfortunately, no one made the connection to the Studio customization from the previous Saturday.
Difficult to trace errors
Is the system slow? Is the data incorrect? Is a button or menu missing? Is a field missing? These can have multiple causes, but they are also all problems that can be caused by Studio. If a code customization has been made, there are all kinds of tools to check it, but for Studio customizations there is no convenient log or debug tools that can be consulted. This means errors often go unnoticed for a long time and cost a lot of time, money, and energy to fix.
Conclusion
Use Odoo Studio to adjust screens by adding existing fields or simple new fields. Do not create complex fields and relational fields if you do not know what you are doing. Odoo Studio seems like a nice tool, but it cannot replace the knowledge and skills of a programmer.
Odoo is probably a very important software system in your company. Use it wisely, and if you do not know what you are doing, ask for help from an Odoo Expert. We are here for you.