Odoo ERP Architecture

15mn read

Odoo, formerly called Tiny ERP then OpenERP is an open-source integrated management software package. It contain a large number of modules that simplify business management. Odoo is used by over eight millions users to manage their businesses across the world. Odoo is the most popular open-source ERP system in the world. 


1- Conception model of Odoo 

 

La conception de Odoo est basé sur le design pattern MVC (Model-View-Controller). Ce dernier est composée de trois parties :

- Model: contains the data 

- View: Contains the different views available in the graphical interface intended for users (List, Graph, etc.)

- Controller: This is the gateway between views and models:

  • It modifies the model if the user makes a modification from the views
  • It updates views if the data in the model changes



Pattern Model-View-Controller

​​



2- Odoo system components


The Odoo application suite has three system components. 

- Database Server: Postgresql. Odoo uses an ORM layer (Object-Relational Mapping) to communicate with Postgresql

- Odoo application server: Developed in Python language.

- Presentation server: It used to connect users to Odoo from web browsers (Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari).


Architecture Odoo



3- Structure of Odoo Modules

3-1- Odoo Module definition 

There are two types of modules in odoo Applications and Extensions. The first one "Extension" allows to add Features to an application, for example the "SMS in CRM" Extension allows to add SMS sending functionality to the CRM Application. The second one "Application" is a standalone module that includes one or more models accessible via menus or submenus.


The "My Pipeline" Model in CRM Application




The Most applications are accessible from the Odoo home page via dedicated icon. 


Home page in Odoo




3-2 Data models in Odoo Modules 

Data models determine the logical structure of a database and how data is stored, organized, and manipulated. In other words, a model is a table of informations that can be linked to other tables 


A model generally represents a homogeneous set of information that corresponds to an object to computerize. Ex: contact, product...

The main elements of a model are :

- Views: These are the forms of displaying Model data. There are eleven in Odoo which are: Chart, List, Pivot table, Form, Kanban, Calendar, Map, Gantt, Cohort, Activity and Search

- Reports: Odoo allows to edit reports in PDF and TXT formats. (Ex: Quotes, Orders, Serial Numbers, etc.)

- Security rules: They define the access rights to a model, there are four of them (Create, Read, Modify and Delete). They are assigned through groups (the users are added in the groups)


4 - Languages used in Odoo


- Phyton: It is used in the creation of Odoo Modules (CRM, Sales, Inventory, etc.)

- QWeb templates: It is a Template Engine developed by the company Odoo to generate Reports

Odoo uses other languages including XML, HTML, Javascript...

Odoo Entreprise ERP
10mn read