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.
What Odoo Is: A Modular All-in-One Business Suite
Odoo is an open-source ERP (Enterprise Resource Planning) platform — a single system of integrated business apps (Sales, Inventory, Accounting, CRM, HR, Website, POS) that share one database. Its defining trait is modularity: you install only the apps you need, and they interoperate seamlessly.
| Layer | Tech |
|---|---|
| Backend | Python + a custom ORM |
| Database | PostgreSQL |
| Frontend | OWL (its own JS framework) + XML views |
| Templating | QWeb |
Why "modular" is the whole idea: traditional ERPs are monolithic and rigid. Odoo splits everything into apps/modules you can add, remove, or extend — and because they share one database, your Sales order automatically affects Inventory and Accounting with no integration work. That integration is the value proposition. The two editions: Community (free, open-source) and Enterprise (paid, adds Studio, more apps, support) — the same core, different feature tiers. For developers, the appeal is extensibility: you build custom modules in Python that inherit and extend Odoo's existing models and views without touching the source, so upgrades don't wipe your work. The stack to know: Python + the Odoo ORM on the backend, PostgreSQL for data, XML for view definitions, QWeb for templating/reports, and OWL for the interactive web client. Understanding that this is one integrated suite built on a consistent stack — not a collection of separate tools — is the key mental model.
🏋️ Practical Exercise
- Write down what Odoo is (an open-source ERP / business-app suite).
- List three Odoo apps (CRM, Sales, Inventory).
- Note the difference between Community and Enterprise editions.
- Identify the tech stack: Python, PostgreSQL, XML, OWL.
- Note that every feature in Odoo is a module.
🔥 Challenge Exercise
Write a short overview of Odoo as an open-source ERP: its app-based structure, its tech stack (Python backend, PostgreSQL, XML views, OWL frontend), and the Community vs Enterprise editions. Explain why everything in Odoo is a module.
📋 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.
Interview Questions
- What is Odoo?
- What is the difference between Community and Enterprise?
- What tech stack does Odoo use?
- What is a module in Odoo?
- Name three core Odoo apps.
Related Topics
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.

