What is an ERP?
ERP stands for Enterprise Resource Planning — software that integrates core business processes into one unified system. Before ERP, companies used separate, disconnected tools: one app for accounting, another for inventory, another for sales. These tools rarely talked to each other, leading to duplicate data, manual reconciliation, and constant errors.
Odoo's approach is modular: you install only the modules you need. Each module handles one business area, and all modules share the same database, user system, and UI framework.
| Module | What it does |
|---|---|
| Sales | Quotes, orders, invoices |
| Inventory | Stock moves, warehouses, routes |
| Accounting | Journal entries, reconciliation, tax |
| CRM | Leads, pipelines, customers |
| HR | Employees, leaves, payroll |
| Website | Public website, eCommerce |
| POS | Point of Sale for retail/restaurants |
| Manufacturing | BOM, work orders, MRP |
Odoo as a Development Framework
Odoo is not just an ERP — it's a Python web framework. It has four distinct layers that work together to power every module:
- Python ORM — Models are Python classes. The ORM handles all SQL automatically.
- XML Views — UI is defined in XML files that Odoo stores and renders.
- OWL JS Frontend — The browser client is built on Odoo's own JavaScript framework, OWL.
- PostgreSQL Database — Every model maps to a PostgreSQL table.
Here is a minimal Odoo model — the foundational building block of every custom module:
from odoo import models, fields
class Book(models.Model):
_name = 'library.book'
_description = 'Library Book'
name = fields.Char(string='Title', required=True)
author_id = fields.Many2one('res.partner', string='Author')
price = fields.Float(string='Price')
active = fields.Boolean(default=True)
The ORM handles CREATE TABLE, SELECT, JOIN, UPDATE, and DELETE automatically based on the model definition. You never write raw SQL for standard CRUD operations.
Community vs Enterprise
Odoo comes in two editions. As a developer, the important thing to know is that both editions use the same API — Enterprise just adds more modules on top of the same framework.
| Feature | Community | Enterprise |
|---|---|---|
| Cost | Free | Per user/month |
| Source code | Public (GitHub) | Partial |
| Core modules | ~30 | ~50+ |
| Accounting | Basic | Full (IFRS/GAAP) |
| Support | Community | Official |
Community edition is free, open-source (LGPL), and hosted publicly on GitHub. Enterprise edition is paid, adds proprietary modules (advanced accounting, payroll, IoT, mobile), but uses the same Python/ORM/XML framework underneath. For learning Odoo development, Community edition is all you need.
Odoo Versions
Odoo follows an annual release cycle. Major versions are not backward compatible — a module written for Odoo 16 needs migration work to run on Odoo 17. Long-term stable releases are versions 14, 16, and 17.
Odoo 19 is the current stable release (as of 2026). All code examples and instructions in this course are written for Odoo 19 Community edition.
📋 Summary
- Odoo is the world's most popular open-source ERP platform, with 12 million+ users across 150+ countries.
- For developers, Odoo is a full-stack Python web framework: ORM, XML views, OWL JS frontend, PostgreSQL database.
- Odoo is modular — install only the business modules you need; all share one database and framework.
- Community edition is free and open-source; Enterprise adds paid modules on the same framework API.
- This course targets Odoo 19 — the current stable release.
FAQ
The Community edition is completely free and open-source under the LGPL licence. You can download it, use it, and build custom modules without paying anything. The Enterprise edition is paid (per user/month) and adds additional proprietary modules on top of the same free framework. For development and learning, Community edition is all you need.
Odoo's backend is built in Python. Views and data files are written in XML (using Odoo's QWeb template engine). The frontend browser client is built on OWL JS — Odoo's own JavaScript framework. All data is stored in PostgreSQL.
Yes. Community edition fully supports custom module development. The module system, ORM, XML views, Python server, and all development APIs are available in Community. Enterprise only adds more pre-built modules — it does not give you a different or better development framework.
No. Odoo is the software — the open-source ERP and web framework. Odoo.sh is Odoo S.A.'s cloud hosting platform for running Odoo deployments. You can self-host Odoo for free on your own server, a VPS, or locally for development — you don't need Odoo.sh.