Understanding the Odoo ecosystem
Odoo provides developers with out-of-the-box modularity and its powerful framework helps them build projects quickly. There are various characters in the Odoo ecosystem that you should be familiar with before embarking on your journey of becoming a successful Odoo developer.
Let’s assume you have a system with 4 CPU cores, 8 GB of RAM, and 30 concurrent Odoo users.
To determine the number of workers needed, divide the number of users by 6. In this case, 30 users divided by 6 equals 5, which is the theoretical number of workers required.
To calculate the theoretical maximum number of workers, multiply the number of CPU cores by 2 and add 1. For 4 CPU cores, (4 * 2) + 1 equals 9, which is the theoretical maximum number of workers.
Based on these calculations, you can use 5 workers for the Odoo users and an additional worker for the cron worker, making a total of 6 workers.
To estimate the RAM consumption, use the following formula:
RAM = Number of workers * ((0.8 * 150) + (0.2 *
1024))
In this case, 6 workers multiplied by ((0.8 * 150) + (0.2 * 1024))
equals approximately 2 GB of RAM.
Therefore, based on these calculations, the Odoo installation will require around 2 GB of RAM.
Odoo editions
Odoo comes in two different editions. The first one is Community Edition, which is open source, while the second one is Enterprise Edition, which has licensing fees. Unlike other software vendors, Odoo Enterprise Edition is just a pack of extra applications that adds extra features or new apps to the Community Edition. The Enterprise Edition runs on top of the Community Edition. The Community Edition comes under the Lesser General Public License v3.0 (LGPLv3) and comes with all of the basic enterprise resource planning (ERP) applications, such as sales, customer relationship management (CRM), invoicing, purchases, and a website builder. Alternatively, the Enterprise Edition comes with the Odoo Enterprise Edition license, which is a proprietary license. Odoo Enterprise Edition has several advanced features, such as full accounting, studio, Voice over Internet Protocol (VoIP), mobile responsive design, e-sign, marketing automation, delivery and banking integrations, Internet of Things (IoT), and more. The Enterprise Edition also provides you with unlimited bugfix support. The following diagram shows that the Enterprise Edition depends on the Community Edition, which is why you need the latter to use the former:
Figure 1.1 – Differences between the Community Edition and Enterprise Edition
You can find a full comparison of both editions here: https://www.odoo.com/page/editions.
Note
Odoo has the largest number of community developers among all open source ERPs on the market with 20K+ forks on GitHub, hence why you will find a large number of third-party apps (modules) on the app store. Some of the free apps use an Affero General Public License version 3 (AGPLv3). You cannot use the proprietary license on your app if your application has dependencies on such apps. Apps with an Odoo proprietary license can only be developed on modules that have LGPL or other proprietary licenses.
Git repositories
The entire code base of Odoo is hosted on GitHub. You can post bugs/issues for stable versions here. You can also propose a new feature by submitting a pull request (PR). There are several repositories in Odoo. See the following table for more information:
Repositories |
Purpose |
This is the Community Edition of Odoo. It’s available publicly. |
|
This is the Enterprise Edition of Odoo. It’s available to official Odoo partners only. |
|
This is an ongoing development repository. It’s available publicly. |
Table 1.1 – Odoo git repositories
Every year, Odoo releases a major release, which is a long-term support version that will last for 3 years, and a few minor versions. Minor versions are mostly used in Odoo’s online Software-as-a-Service (SaaS) offering, meaning that Odoo SaaS users get early access to these features. Major version branches have names such as 17.0, 16.0, 15.0, 14.0, 13.0, and 12.0, while minor version branches have names such as saas-17.1 and saas-17.2 on GitHub. These minor versions are mostly used for Odoo’s SaaS platform. The master
branch is under development and is unstable, so it is advisable not to use this for production since it might break your database.
Runbot
Runbot is Odoo’s automated testing environment. Whenever there is a new commit in Odoo’s GitHub branch, Runbot pulls those latest changes and creates the builds for the last four commits. Here, you can test all stable and in-development branches. You can even play with the Enterprise Edition and its development branches.
Every build has a different background color, which indicates the status of the test cases. A green background color means that all of the test cases run successfully and you can test that branch, while a red background color means that some test cases have failed on this branch and some features might be broken on that build. You can view the logs for all test cases, which show exactly what happens during installation. Every build has two databases. The all
database has all of the modules installed on it, while the base
database only has base Odoo modules installed. Every build is installed with basic demo data, so you can test it quickly without extra configurations.
Note
You can access Runbot at http://runbot.odoo.com/runbot.
The following credentials can be used to access any Runbot build:
- Login ID: admin Password: admin
- Login ID: demo Password: demo
- Login ID: portal Password: portal
Note
This is a public testing environment, so other users might be using/testing the same branch that you are testing.
Odoo app store
Odoo launched the app store a few years back, and it was an instant hit. At the time of writing, over 39,000+ different apps are hosted there. You will find lots of free and paid applications for different versions here. This includes specific solutions for different business verticals, such as education, food industries, and medicine. It also includes apps that extend or add new features to existing Odoo applications. The app store also provides numerous beautiful themes for the Odoo website builder. In Chapter 3, Creating Odoo Add-On Modules, you will learn how to set pricing and currency for your custom module.
You can access the Odoo app store by going to https://www.odoo.com/apps.
You can access Odoo’s themes by going to https://www.odoo.com/apps/themes.
Note
Odoo has open sourced several themes after version 13 and now works with an advanced JavaScript called OWL. We will cover this in Chapter 16. Note that these were paid themes in previous versions. This means that, in Odoo versions 15 and 16, you can download and use those beautiful themes at no extra cost.
Odoo Community Association
Odoo Community Association (OCA) is a non-profit organization that develops/manages community-based Odoo modules. All OCA modules are open source and maintained by Odoo community members. OCA’s GitHub account contains multiple repositories for different Odoo applications. Apart from Odoo modules, it also contains various tools, a migration library, accounting localizations, and so on.
Here is the URL for OCA’s official GitHub account: https://github.com/OCA.
Official Odoo help forum
Odoo has a very powerful framework, and tons of things can be achieved just by using/activating options or by following specific patterns. Consequently, if you run into some technical issues or if you are not sure about some complex cases, then you can post your query on Odoo’s official help forum. Lots of developers are active on this forum, including some official Odoo employees.
You can search for questions or post your new questions by going to https://www.odoo.com/forum/help-1.
Odoo’s eLearning platform
Recently, Odoo has launched a new eLearning platform. This platform provides lots of videos that explain how to use different Odoo applications. At the time of writing, this platform does not have technical videos, just functional ones.
Here is the URL for Odoo’s eLearning platform: https://www.odoo.com/slides.