Back to Top

How to create a module in Odoo

Updated 30 October 2024

Create a new module in Odoo

Odoo is basically a web-based open source & modular-based framework/software.

Which includes multiple business solutions like “CRM”, “POS”, “E-Commerce”, “ERP”, “Manufacturing”, “Inventory Management”, “Billing & Accounting” and “Project Management”.

Introduction to the Odoo module

Describe the importance of the module in Odoo

The Odoo module is a set of business logic that helps to enhance the existing functionality or add some new functionality in Odoo.

Where to create a new module in Odoo?

Odoo is a modular-based framework and all the core modules are present inside the Odoo Apps.

You can find the addons path inside the Odoo configuration file(If you are managing) and inside the configuration file you can find the “addons_path

Start your headless eCommerce
now.
Find out More
config-1

or you can use the below command to find the Odoo addons path,

ps  aux | grep odoo

Structure of Odoo Module

  • Business Objects (Contains the Python Classes in Python Files)
  • Object Views (Contains the business object for UI).
  • Data Files
    • Views
    • Report
    • Demonstration Files
    • Data Files
    • Security FIles (For Access Rights & Rules)
    • Email/Qweb Templates 
    • Many More.
  • Static Web (Contains the module documentation files, CSS, JQuery, etc.
  • Controllers (To manage backend/frontend actions).

Now, for example, we are creating a module whose technical name is “‘webkul_elearning_module

Required Files to Create a Basic Module

  • __manifest__.py
  • __init__.py

What is a Manifest file?

This file “__manifest__.py” helps to specify the metadata of the module and also helps to show the module inside the Odoo app list. All the metadata is associated inside the dictionary.

manifest
  • Name (Module Name)
  • Description (Contains the module long description)
  • Depends (Contains the list of dependent modules)
  • And there are many more.

NOTE: __manifest__.py only helps to show the module inside Odoo app list but when you will try to install module then you will get “ImportError: No module named ‘webkul_elearning_module’

So in order to make your module installable, you also need to define the “__init__.py” file.

What is an __init__.py file?

‘__init__.py’ is a Python module descriptor file. It works like a Python module that runs from the start of the program.

Basically, it helps to import Python packages/files that need to be loaded at Odoo.

init

These two files are enough to make modules installable in Odoo.

Steps to create/install the module at Odoo

  • Create a folder then set the technical name for the module.
    • Make sure the module technical name should not contain any spaces eg: “webkul_elearning_module”.
  • Then create an “__init__.py” file inside the folder,
    • You can define Python packages/files inside this file.
  • Then create a “__manifest__.py” file,
    • You can define the module name(If not defined the name will be ‘Unnamed’) and some other metadata.
  • Now login to your Odoo.
  • Then open developer mode at your Odoo from Odoo “settings”.
  • Also, You can press the CTRL + K and then type debug after that press enter on “activate debug mode”(It will support the latest versions of the Odoo).
developer
developer
  • Then go to the “Apps” menu.
  • Inside the “Apps” menu you will see a button “Update App List”.
app
  • Click on that button.
  • Then check the module using the module name.
  • After that, you will find your module inside the app list.
  • Then click on the “install” button in order to install your module at Odoo’s end.
installed

So this is how you can create a new module in Odoo and install modules at Odoo’s end.

You can also check some other informative blogs

We Would Love to Hear From You!

Hope you find the blog informative! Please feel free to share your feedback in the comments below.

Also, check webkul store page to go through our odoo apps. As an Odoo Partner, we also provide odoo customization services, You may Hire Odoo Developers for odoo ERP development services.

If you still have any issues/queries then please raise a ticket at https://webkul.uvdesk.com/en/customer/create-ticket/

For any doubt contact us at [email protected].

Thanks for paying attention!!

🙂 😊

. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


10 comments

  • Madhav Parikh
    • Ashish Singh (Moderator)
  • romenas dalila
    • Ashish Singh (Moderator)
  • eliijan
    • Ashish Singh (Moderator)
  • ahmad ajaz
    • Ashish Singh (Moderator)
  • Abdul Rafay
    • Anisha Bahukhandi (Moderator)
  • Back to Top

    Message Sent!

    If you have more details or questions, you can reply to the received confirmation email.

    Back to Home