{"id":240367,"date":"2020-03-31T19:02:11","date_gmt":"2020-03-31T19:02:11","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=240367"},"modified":"2025-12-24T12:09:56","modified_gmt":"2025-12-24T12:09:56","slug":"how-to-create-a-module-in-odoo","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/","title":{"rendered":"How to create a module in Odoo"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Create a new Odoo module<\/h2>\n\n\n\n<p>Odoo is a web-based, open-source, and modular business software platform.<\/p>\n\n\n\n<p>It includes multiple integrated applications such as CRM, POS, E-Commerce, ERP, Manufacturing, Inventory Management, Accounting, and Project Management.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Introduction to the Odoo module<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Describe the importance of the module in Odoo<\/h4>\n\n\n\n<p><a href=\"https:\/\/store.webkul.com\/Odoo.html\" target=\"_blank\" rel=\"noreferrer noopener\">Odoo module<\/a> is a set of business logic that helps to enhance the existing functionality or add new functionality in Odoo.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Where to create a new module in Odoo?<\/h4>\n\n\n\n<p>Odoo is a modular framework, and all core modules are present within the Odoo Apps.<\/p>\n\n\n\n<p>You can find the addons path inside the Odoo configuration file(If you are managing), and inside the configuration file, you can find the \u201c<strong>addons_path<\/strong>\u201d<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1095\" height=\"201\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf.webp\" alt=\"\" class=\"wp-image-518858\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf.webp 1095w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf-300x55.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf-250x46.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf-768x141.webp 768w\" sizes=\"(max-width: 1095px) 100vw, 1095px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>Or you can use the below command to find the Odoo addons path,<\/p>\n\n\n\n<p>       <strong>-&gt;<\/strong> <strong>ps&nbsp; aux | grep odoo<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Odoo Module Structure<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>models<\/strong> \u2013 Python business logic and database models<\/li>\n\n\n\n<li><strong>views<\/strong> \u2013 XML UI definitions (form, tree, kanban, menus, actions)<\/li>\n\n\n\n<li><strong>data<\/strong> \u2013 Default data, sequences, cron jobs<\/li>\n\n\n\n<li><strong>report<\/strong> \u2013 QWeb PDF reports and report actions<\/li>\n\n\n\n<li><strong>demo<\/strong> \u2013 Demo\/sample data (optional)<\/li>\n\n\n\n<li><strong>security<\/strong> \u2013 Access rights and record rules<\/li>\n\n\n\n<li><strong>static<\/strong> \u2013 Web assets (CSS, JS, images, XML templates)<\/li>\n\n\n\n<li><strong>controllers<\/strong> \u2013 HTTP routes, website, and API logic<\/li>\n\n\n\n<li><strong>wizard<\/strong> \u2013 Transient models (pop-ups)<\/li>\n\n\n\n<li><strong>tests<\/strong> \u2013 Automated test cases<\/li>\n\n\n\n<li><strong>manifest.py<\/strong> \u2013 Module metadata<\/li>\n\n\n\n<li><strong>init.py<\/strong> \u2013 Python initialization<\/li>\n<\/ul>\n\n\n\n<p>Now, for example, we are creating a module whose technical name is \u201c<strong>\u2018webkul_elearning_module<\/strong>\u201d<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Required Files to Create a Basic Module<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>__manifest__.py<\/li>\n\n\n\n<li>__init__.py<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">What is a Manifest file?<\/h4>\n\n\n\n<p>The <code><strong>__manifest__.py<\/strong><\/code> file defines the metadata of an Odoo module. It tells Odoo how the module should be loaded, its dependencies, and whether it should appear as an application in the Apps menu.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"634\" height=\"337\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/manifest.png\" alt=\"manifest\" class=\"wp-image-240446\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/manifest.png 634w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/manifest-300x159.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/manifest-250x133.png 250w\" sizes=\"(max-width: 634px) 100vw, 634px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Name (Module Name)<\/li>\n\n\n\n<li>Description (Contains the module&#8217;s long description)<\/li>\n\n\n\n<li>Depends (Contains the list of dependent modules)<\/li>\n\n\n\n<li>And there are many more.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>NOTE:<\/strong> <strong>__manifest__.py<\/strong> only helps to show the module inside Odoo app list but when you will try to install module then you will get \u201c<strong>ImportError: No module named \u2018webkul_elearning_module\u2019 <\/strong>\u201d<\/p>\n<\/blockquote>\n<\/div><\/div>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"590\" data-id=\"240439\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/error.png\" alt=\"error\" class=\"wp-image-240439\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/error.png 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/error-300x148.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/error-250x123.png 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/error-768x378.png 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n<\/figure>\n\n\n\n<p>So to make your module installable, you also need to define the \u201c<strong>__init__.py<\/strong>\u201d file.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What is an __init__.py file?<\/h3>\n\n\n\n<p><code><strong>__init__.py<\/strong><\/code> is a Python package initialization file. It is used to import Python files and submodules so that Odoo can recognize and load them when required.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"644\" height=\"273\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/init.png\" alt=\"init\" class=\"wp-image-240440\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/init.png 644w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/init-300x127.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/init-250x106.png 250w\" sizes=\"(max-width: 644px) 100vw, 644px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>These two files are enough to make modules installable in Odoo.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Steps to create\/install the module at Odoo<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create a folder, then set the technical name for the module.\n<ul class=\"wp-block-list\">\n<li>Make sure the module <strong>technical name<\/strong> does not contain any spaces, e.g., \u201cwebkul_elearning_module\u201d.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Then create an \u201c<strong>__init__.py<\/strong>\u201d file inside the folder,\n<ul class=\"wp-block-list\">\n<li>You can define Python packages\/files inside this file.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Then create a \u201c<strong>__manifest__.py<\/strong>\u201d file,\n<ul class=\"wp-block-list\">\n<li>You can define the module name(If not defined, the name will be \u2018Unnamed\u2019) and some other metadata.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Then restart your Odoo server.<\/li>\n\n\n\n<li>Now login to your Odoo.<\/li>\n\n\n\n<li>Then open developer mode in your Odoo from Odoo \u201csettings\u201d.<\/li>\n\n\n\n<li>Also, you can press CTRL + K and then type debug. After that, press enter on &#8220;activate debug mode&#8221;(It will support the latest versions of Odoo).<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/10\/ss-1.webp\" alt=\"developer\" class=\"wp-image-240441\" loading=\"lazy\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/10\/ss-2.webp\" alt=\"developer\" class=\"wp-image-240441\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Then go to the \u201cApps\u201d menu.<\/li>\n\n\n\n<li>Inside the \u201cApps\u201d menu, you will see a button \u201cUpdate App List\u201d.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"579\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/updtapps-1200x579.webp\" alt=\"\" class=\"wp-image-518827\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/updtapps-1200x579.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/updtapps-300x145.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/updtapps-250x121.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/updtapps-768x370.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/updtapps.webp 1524w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Click on that button.<\/li>\n\n\n\n<li>Then check the module using the module name.<\/li>\n\n\n\n<li>After that, you will find your module inside the app list.<\/li>\n\n\n\n<li>Then click on the \u201cinstall\u201d button to install your module at Odoo&#8217;s end.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"578\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/elearningapp-1200x578.webp\" alt=\"\" class=\"wp-image-518846\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/elearningapp-1200x578.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/elearningapp-300x145.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/elearningapp-250x120.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/elearningapp-768x370.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/elearningapp.webp 1525w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>So this is how you can create a new module in Odoo and install modules at Odoo&#8217;s end.<\/p>\n\n\n\n<p>You can also check some other <a href=\"https:\/\/webkul.com\/blog\/creating-automated-server-actions-odoo\/\">informative blogs<\/a> <\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>We Would Love to Hear From You!<\/strong><\/h3>\n\n\n\n<p>Hope you find the blog informative! Please feel free to share your feedback in the comments below.<\/p>\n\n\n\n<p>Also, check webkul store page to go through our Odoo apps. As an Odoo Partner, we also provide <a href=\"https:\/\/webkul.com\/odoo-customization-services\/\">odoo customization services<\/a>, You may <a href=\"https:\/\/webkul.com\/hire-odoo-developers\/\">Hire Odoo Developers<\/a> for <a href=\"https:\/\/webkul.com\/odoo-development\/\">odoo ERP development<\/a> services.<\/p>\n\n\n\n<p>If you still have any issues\/queries, then please raise a ticket at <a href=\"https:\/\/webkul.uvdesk.com\/en\/customer\/create-ticket\/\">https:\/\/webkul.uvdesk.com\/en\/customer\/create-ticket\/<\/a><\/p>\n\n\n\n<p>For any doubt, contact us at support@webkul.com.<\/p>\n\n\n\n<p>Thanks for paying attention!!<\/p>\n\n\n\n<p>\ud83d\ude42 \ud83d\ude0a<br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Create a new Odoo module Odoo is a web-based, open-source, and modular business software platform. It includes multiple integrated applications such as CRM, POS, E-Commerce, ERP, Manufacturing, Inventory Management, Accounting, and Project Management. Introduction to the Odoo module Describe the importance of the module in Odoo Odoo module is a set of business logic that <a href=\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":90,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-240367","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Create a New Odoo Module<\/title>\n<meta name=\"description\" content=\"Learn how to create a new Odoo module step by step. Build custom features, extend functionality, &amp; streamline Odoo development process.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Create a New Odoo Module\" \/>\n<meta property=\"og:description\" content=\"Learn how to create a new Odoo module step by step. Build custom features, extend functionality, &amp; streamline Odoo development process.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-31T19:02:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-24T12:09:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf.webp\" \/>\n<meta name=\"author\" content=\"Ashish Singh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ashish Singh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/\"},\"author\":{\"name\":\"Ashish Singh\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/3b92c698256ce0bcb9613acf8bbf5b2d\"},\"headline\":\"How to create a module in Odoo\",\"datePublished\":\"2020-03-31T19:02:11+00:00\",\"dateModified\":\"2025-12-24T12:09:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/\"},\"wordCount\":681,\"commentCount\":10,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf.webp\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/\",\"url\":\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/\",\"name\":\"How to Create a New Odoo Module\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf.webp\",\"datePublished\":\"2020-03-31T19:02:11+00:00\",\"dateModified\":\"2025-12-24T12:09:56+00:00\",\"description\":\"Learn how to create a new Odoo module step by step. Build custom features, extend functionality, & streamline Odoo development process.\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#primaryimage\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf.webp\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf.webp\",\"width\":1095,\"height\":201},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to create a module in Odoo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/3b92c698256ce0bcb9613acf8bbf5b2d\",\"name\":\"Ashish Singh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ef2c82640f6054d8a8cfca9e3edd7edaf800ff1873b6d103c7bbf0b47dfefc1e?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ef2c82640f6054d8a8cfca9e3edd7edaf800ff1873b6d103c7bbf0b47dfefc1e?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Ashish Singh\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/ashish067\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Create a New Odoo Module","description":"Learn how to create a new Odoo module step by step. Build custom features, extend functionality, & streamline Odoo development process.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/","og_locale":"en_US","og_type":"article","og_title":"How to Create a New Odoo Module","og_description":"Learn how to create a new Odoo module step by step. Build custom features, extend functionality, & streamline Odoo development process.","og_url":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2020-03-31T19:02:11+00:00","article_modified_time":"2025-12-24T12:09:56+00:00","og_image":[{"url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf.webp","type":"","width":"","height":""}],"author":"Ashish Singh","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Ashish Singh","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/"},"author":{"name":"Ashish Singh","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/3b92c698256ce0bcb9613acf8bbf5b2d"},"headline":"How to create a module in Odoo","datePublished":"2020-03-31T19:02:11+00:00","dateModified":"2025-12-24T12:09:56+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/"},"wordCount":681,"commentCount":10,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf.webp","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/","url":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/","name":"How to Create a New Odoo Module","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf.webp","datePublished":"2020-03-31T19:02:11+00:00","dateModified":"2025-12-24T12:09:56+00:00","description":"Learn how to create a new Odoo module step by step. Build custom features, extend functionality, & streamline Odoo development process.","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf.webp","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/03\/odooconf.webp","width":1095,"height":201},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/how-to-create-a-module-in-odoo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to create a module in Odoo"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/3b92c698256ce0bcb9613acf8bbf5b2d","name":"Ashish Singh","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ef2c82640f6054d8a8cfca9e3edd7edaf800ff1873b6d103c7bbf0b47dfefc1e?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ef2c82640f6054d8a8cfca9e3edd7edaf800ff1873b6d103c7bbf0b47dfefc1e?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Ashish Singh"},"url":"https:\/\/webkul.com\/blog\/author\/ashish067\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/240367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/90"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=240367"}],"version-history":[{"count":28,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/240367\/revisions"}],"predecessor-version":[{"id":518861,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/240367\/revisions\/518861"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=240367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=240367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=240367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}