Presentation - The Odoo Ecosystem

A short introduction into the ecosystem of Odoo, its communities and how it is developed.

What is Odoo

  • Open Source ERP and CRM
  • Business Management Software
  • Framwork for Business Application


Fabien Pinckaers - Odoo Founder & CEO^1open in new window.

  • 2005: TinyERP
  • 2008: Rename to OpenERP
  • 2010: 100+ employees
  • 2014: Funding and rename to Odoo (product and company)
  • 2015: Transition to open core model (v9.0)
  • 2020: Release Odoo v14.0

Odoo S.A.

  • Based in Belgium
  • Coordinates Odoo development
  • Offers SaaS (Odoo Cloud) and PaaS (
  • Publishes certificates, learning material and more
  • Maintains the partner network


Odoo Community Association[^4]

  • Nonprofit orgnisation
  • Promotes the widespread use of Odoo
  • Coordinates Odoo Open Source community
  • Maintains OSS Apps

Odoo Overview

Odoo Community Edition

The core of Odoo.

Managed on GitHub: in new window

Odoo Enterprise Edition

Licensed version of Odoo.

  • Supported by Odoo S.A.
  • Enterprise upgrade eligible
  • Enterprise apps and themes

Private repo on GitHub: in new window

Odoo licensing

Odoo coats

Coats for the Odoo core.

Everything is a module

The Odoo business layer consists of various modules. Example: Product Modelopen in new window

  • Module manifest
  • models/ Model definition
  • views/product_views.xml: View definition
  • i18n/de.po: German translation
  • security/ir.mode.access.csv: Access groups and permissions

Odoo Architecture

  • Powered by Python and PostgreSQL
  • Model-View-Controller

Logical Architecture

Odoo's ORM

Object Relation Mapping^2open in new window.

  • Manages models and business logic
  • Internal registry loads module definitions
  • Methods to interact with data

Everything is XML

Every view is defined as XML.

Forms, lists, pages, filters, fields, menus, records, ...

Extending Odoo

Odoo can be extended easily

  • Inherit a model and change business logic
  • Change XML-structure and update views

Inherit a Model

from odoo import models

class ProductProduct(models.Model):
    _inherit = "product.product"

    _sql_constraints = [
            "Internal Reference must be unique across the database!",

Source: OCA Product Attribute - product.pyopen in new window

XPath Edits

<template id="website_product_description.product" inherit_id="website_sale.product">
	<xpath expr="//div[@id='product_details']/div/p" position="replace">
		<p t-field="product.web_description" class="text-muted mt-3" />

Source: Mint System Odoo App: Website Product Description - website_sale_product.xmlopen in new window

Odoo Framework

Odoo is a framework for developing business applications [^3].

  • Access to all Odoo entities
  • User and access management
  • Defined views: lists, chart, kanban, gantt, pivot
  • Security and performance


Certificate Planner

Repo: in new window
Manual: in new window

Demo in new window

Benutzername: admin
Passwort: admin

Script: Tutorial - Extend the Odoo product model

Helpful resources:

Documentation: in new window
Odoo CI/CD: in new window
GitHub OCA: in new window
Odoo Connector: in new window


[^3]: Applikation mit Odoo entwickeln [^4]: in new window