What Is an Odoo Module? A Complete Beginner’s Guide
#Odoo Module #Odoo Modules #Odoo ERP #Odoo Development #Odoo Custom Module

What Is an Odoo Module? A Complete Beginner’s Guide

Odoo is one of the most powerful open-source ERP platforms in the world, and the reason behind its flexibility is its modular architecture. Every feature you see in Odoo—Sales, Inventory, Accounting, HR, Website—is built using modules.

In this article, we’ll explore what an Odoo module is, how it works, its structure, and why modules are the backbone of Odoo development.

What Is an Odoo Module?

An Odoo module is a self-contained package that adds a specific feature or business functionality to the Odoo system.

Each module can:

  • Add new database models
  • Modify existing functionality
  • Create screens, menus, and reports
  • Define security and access rules

Odoo modules are plug-and-play components that extend Odoo’s capabilities.

Why Odoo Uses Modules

Odoo is designed to be 100% modular, which means:

  • You install only what you need
  • Features can be added or removed easily
  • Custom business logic stays isolated
  • Easier upgrades and maintenance
  • Clean separation of concerns

This makes Odoo suitable for small businesses to large enterprises.

Examples of Odoo Modules

Core (Official) Modules

Provided by Odoo itself:

  • sale – Sales Management
  • purchase – Purchase Orders
  • account – Accounting
  • stock – Inventory
  • hr – Human Resources

Custom Modules

Developed for specific business needs:

  • school_management
  • custom_invoice
  • mlm_system
  • warehouse_tracking

Third-Party Modules

Built by the community or vendors:

  • OCA (Odoo Community Association) modules
  • Payment gateways
  • Shipping integrations

Odoo Module vs Odoo App

Many beginners get confused between modules and apps.

ModuleApp
Technical conceptMarketing concept
Code + folderInstallable feature
Can be hiddenShown in Apps menu
Core development unitUser-facing package

📌 Every App is a module, but not every module is visible as an App.

Basic Structure of an Odoo Module

    my_module/
            ├── __init__.py
            ├── __manifest__.py
            ├── models/
            │   ├── __init__.py
            │   └── model.py
            ├── views/
            │   └── views.xml
            ├── security/
            │   ├── ir.model.access.csv
            │   └── security.xml
            ├── data/
            │   └── data.xml
            └── static/
                └── description/
                    └── icon.png

Each folder has a specific purpose, making modules easy to manage and extend.

Key Files in an Odoo Module

1. __manifest__.py

This file defines the module’s identity.

    {
    'name': 'My First Module',
    'version': '1.0',
    'category': 'Sales',
    'depends': ['base'],
    'data': [
        'views/views.xml',
        'security/ir.model.access.csv',
    ],
    'installable': True,
    }

It tells Odoo:

  • Module name and version
  • Dependencies
  • Which files to load

2. Models (models/)

This is where business logic lives.

from odoo import models, fields
class MyModel(models.Model):
    _name = 'my.model'
    name = fields.Char(string="Name")

Models automatically map to database tables.

3. Views (views/)

Defines how data is shown in the UI.

Includes:

  • Forms
  • Lists
  • Kanban
  • Calendars

4. Security (security/)

Controls who can access what.

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_my_model,my.model,model_my_model,,1,1,1,1

Security is mandatory for custom models.

Module Dependencies in Odoo

Modules can depend on other modules:

'depends': ['sale', 'stock']

This means:

  • Your module will install only after these modules
  • You can reuse their models and features

How Odoo Loads Modules

  1. Reads __manifest__.py
  2. Installs dependencies
  3. Loads security rules
  4. Creates database tables
  5. Loads views, menus, and data

This happens automatically when you install or upgrade a module.

Installing an Odoo Module

From Odoo UI

  1. Enable Developer Mode
  2.  

Go to Apps

  1. Search the module
  2. Click Install

From Command Line

./odoo-bin -u my_module -d my_database

Real-World Use Case of Odoo Modules

Let’s say you want to build an MLM system based on product purchases:

  • Create a module: mlm_system
  • Depends on: sale, account
  • Add:
    • Commission logic
    • Referral tree
    • Bonus calculation
    • Payout reports

All logic stays inside one clean module.

Benefits of Odoo Modules

  • Clean and organized code
  • Easy customization
  • Reusable functionality
  • Upgrade-friendly
  • Scalable architecture

Conclusion

An Odoo module is the foundation of everything in Odoo. Whether you are installing Sales, building a custom ERP solution, or developing advanced business logic, modules make Odoo powerful, flexible, and scalable.

×
MLM PLAN
×
×