How To Create Module In Odoo

How To Articles

Creating modules in Odoo is an essential skill for any developer working with the platform. In this article, I will guide you through the process of creating a module in Odoo, sharing my personal experiences and insights along the way.


Odoo is an open-source ERP (Enterprise Resource Planning) software that provides businesses with a wide range of applications to manage various aspects of their operations. One of the key features of Odoo is the ability to create custom modules, which allow you to extend the functionality of the system and tailor it to your specific needs.

Creating a module in Odoo involves a series of steps, including defining the module structure, creating the necessary files, and implementing the desired functionality. Let’s dive in and explore each of these steps in detail.

Defining the Module Structure

The first step in creating a module in Odoo is to define its structure. This involves identifying the module’s name, version, description, and other metadata. This information is typically specified in a manifest file, which is a YAML file with a .manifest extension.

Here’s an example of how the manifest file for a module called “my_module” might look:

name: My Module
version: 1.0
summary: A brief summary of the module
description: A detailed description of the module
author: John Doe

Creating the Necessary Files

Once the module structure is defined, the next step is to create the necessary files. These files include Python files for defining the module’s models, views, and controllers, as well as XML files for defining the module’s user interface.

For example, you might create a Python file called “” to define the module’s models and their fields, methods, and relations. Here’s an example of how this file might look:

from odoo import models, fields, api

class MyModel(models.Model):
_name = 'my_module.my_model'
_description = 'My Model'

name = fields.Char(string='Name')
age = fields.Integer(string='Age')

# Add more fields, methods, and relations as needed

In addition to the models file, you may also create XML files to define the module’s views and user interface. These files specify how the data should be displayed and interacted with in Odoo’s interface. For example, you might create a file called “views.xml” to define a form view for the “My Model” model:


Implementing the Desired Functionality

Once the necessary files are created, the next step is to implement the desired functionality in the module. This involves writing the necessary code in the Python files to handle various operations, such as creating, reading, updating, and deleting records.

For example, you might add methods to the models file to perform specific actions when certain events occur. Here’s an example of how you could add a method to the “My Model” model to compute a person’s age group based on their age:

def _compute_age_group(self):
for record in self:
if record.age < 18: record.age_group = 'Minor' else: record.age_group = 'Adult'

In addition to adding code to handle operations on records, you may also need to define access rights, workflows, and other advanced features depending on your module's requirements.


Creating a module in Odoo is an exciting and empowering process that allows you to customize the platform to meet your specific needs. By following the steps outlined in this article, you can create a module in Odoo and unleash the full potential of the software.

Remember to experiment, explore, and continuously improve your modules to ensure they align with your evolving business requirements. Happy module creation!