Best Resources to Learn Odoo

Odoo, formerly known as OpenERP, is business management software including CRM, E-commerce, Sales management, Warehouse management, Purchase management, Accounting suit, Manufacturing management, HRMS, etc..

Tutorials and Courses

  • Odoo Developer Document – This official document includes everything for a developer to know and develop module for Odoo.
  • Odoo Slides – Another official resources to learn about this open source ERP. While the developer document is about each component, this Slides section is about using Odoo to handle a business logic.
  • Odoo: The complete Master Class: Beginner to Professional – This course will teach about the basics of Odoo ERP, including Installing, Configuring the popular Odoo Modules and advanced Odoo Administrative Feature.
  • Odoo 11 Development Essentials – Learn to scaffold a new module, create new models inside it, and use the proper functions (business intelligence) that make Odoo the best ERP out there.
  • yenthevg – This blog is very useful for anything related to Odoo. It provides lots of tutorials. They are straight forward and help users solve a lot of problem related to Odoo’s features and coding.


  • Odoo 12 Development Essentials – Explore Odoo 12 capabilities to develop business applications.
  • Odoo Book V13 – Odoo 13 Book is a complete user manual for the readers who are looking forward to implement all-in-one business application.

Best Odoo Apps

  • Odoo 13 Accounting – This Module will bring back the accounting features such as Account Reports, Asset Management and Budget Management into Odoo 13 Community Edition.
  • Bureaucrat Helpdesk Lite – Bureaucrat Helpdesk module allows you to organize a company service desk. You can configure categories, types, stages, set up routes of requests and provide request handling.
  • Open HRMS Core – A simple, easy to use and intuitive tool helping employees and management to perform in full potential, boosting the productivity and overall employee satisfaction. Open HRMS offers a 360 degree overview of employee and their skills.
  • Database auto-backup – Keep your Odoo data safe with this module. Take automated back-ups, remove them automatically and even write them to an external server through an encrypted tunnel.
  • Product Barcode Generator – The module automatically generates EAN13 standard barcode for each product while you create it. The module also introduces a new feature to print product variant price on the product label.
  • Web Digital Signature v13.0 – This module is helpful to make your business process a little bit more faster & makes it more user friendly by providing you digital signature functionality on your documents.
  • Project Report XLS & PDF – This module enhances the project management with intuitive reports. Reports consist of task details with respect to the selected project.
  • Project Task Timer – Track hours with a button which start & stop your task and record your actual working hours.
  • Shopify Odoo Connector – Using this connector, a seller can integrate Shopify Store with Odoo and manage different operations such as publishing products to Shopify, Importing Orders to odoo and much more.
  • Dashboard Ninja – create beautiful, customized and robust dashboards for your different departments.
  • Odoo WooCommerce Connector – Odoo WooCommerce Connector will help you integrate and manage your WooCommerce store in Odoo. Perform various operations like Importing Orders and Customer Data, Updating Inventory, Updating Order Status, Importing & Exporting Products, Product Categories, Product tags and much more. Automate various vital tasks like Order Import, Order Status Update & Stock Update to ease your work.
  • Mass Mailing Theme – With this module you will be able to create beautiful, mobile compatible mails with your own brand colors.
  • Odoo Multi Vendor Marketplace – The module transforms your single e-commerce website into a working e-commerce marketplace. Your sellers would signup and sell their products.


Change user’s default landing page after login

Let’s say if you want to set Inventory page as the default landing page:

  • Activate the developer mode (see the tip below for this part).
  • Access Settings > Technical > User Interface > Menu Items
  • Click on Inventory page to view its settings.
  • Modify Sequence field to 0.

Useful command lines

//restart odoo instance to reflect changes in modules
sudo service odoo-server restart
//show last 100 lines of log 
tail -f -n 100 /var/log/odoo/odoo-server.log
//install and uninstall a module
./ -d [database_name] -i [module_name]
./ -d [database_name] -u [module_name]

Enable developer mode

Normally, you can go to Settings then click the Activate the developer mode button to enable developer mode. There a method which enable developer mode at any pages I often use.

You just need to append ?debug after the web parameter in the URL. For example, replace http://localhost:8069/web#action=401&model=res.partner&view_type=kanban&menu_id=263 with http://localhost:8069/web?debug#action=401&model=res.partner&view_type=kanban&menu_id=263

Debug QWeb Template

QWeb Template can be debugged by using t-debug="pdb" attribute in your XML template. It is used for debugging the template code.

<t t-debug="pdb"/>

Blog Posts

Starting from Odoo 13, Purchase product lines have note and section as a line. This feature isn't enabled in Odoo 12. With this module, you can enable these 2 display types in Purchase Order form. Features: Add note and section...
Odoo is an open source ERP which can be connect from outside to perform some database operations. Part of its Models API is available over XML-RPC and JSON-RPC. These Dart & Flutter plugins use these protocols to communicate with Odoo....

Odoo provides an easy way to create settings which you can modify their values in Settings > General Settings. Create setting model Firstly, we need to define a model which inherits res_config_settings. class ResConfigSettings(models.TransientModel): _inherit = 'res.config.settings' custom_emails = fields.Char('Custom...

Odoo offers a way to scaffold a module with the built-in command line. If you are new to Odoo development, the created module still lacks some features for reference. That's why I create this Odoo module boilerplate. List of features:...

Knowing all available Odoo module categories will help developers choose a suitable one to place their module in. Category of a module can be defined in of your module folder. 'category': 'Uncategorized', The full list can be found at...
Searching can't be completed without search operators. They will be helpful when using with domain attributes. Search operators Search domain can contain zero or multiple tuples. Each tuple needs to have 3 elements, in the form of ('field_name', 'operator', value). ['|',...

Both Filter and Group By is useful for user to quickly filter data in Odoo. Default group is often used so we can see tally data when a list is first loaded. Define search view to a model <record model="ir.actions.act_window"...
Anyone who use Odoo can spot that Name column of model like sale, invoice are generated automatically. In Odoo, we call it Sequence. In this post, we will try to create a customer model and allow its name column to...

Following are all available widgets which can be used in XML template file. Monetary The widget=”monetary” was introduced in Odoo 9.0 and is not available in previous versions. We using it when we want to create a fielfs that unit...
Like other views in Odoo, email template can also be defined in view's XML file. Create email template <?xml version="1.0" encoding="utf-8"?> <odoo> <data noupdate="1"> <!--Email template --> <record id="my_email_template" model="mail.template"> <field name="name">First Email Template</field> <field name="email_from">${ and or ''}</field>...

In this article, we introduce a command line which can create a module from scratch for Odoo (v10+). Even though you can create a custom module manually by creating new folder and its necessary files, it is faster to use...

A PDF report's header and header contain company and client' information like address, email. We can inherit view id ofreportmodule for any Odoo before 11, or view id of web module for Odoo 11+. The following code is confirmed to...
In Odoo a menu item can link to an external URL. URL action (ir.actions.act_url) allows opening a URL (website/web page) via an Odoo action. Here is the menu item code and its action: <record model="ir.actions.act_url" id="act_reports"> <field name="name">Reports</field> <field name="url"></field>...

Odoo has this nice features which allow to change colors of tree lines based on condition. Starting from Odoo version 9, decorationsare used in tree XML instead of colors. decoration-bf - shows the line in BOLDdecoration-it - shows the line...

Contact can be accessed after installing Contacts module. It is the core Odoo module which manage a company's address book, be it partner or customer. Add a custom field to Contact form We will create a field to res.partner model...

Odoo doesn't support popup message out of the box. There is this raise Warning(message) which opens a popup to show errors. However, you SHOULD never use them to show message to users. In Odoo, everything runs inside a big transaction....
There are 3 core methods which are related to a record. They are Create, Write, and Unlink. You can call them Create, Update, and Delete. Overriding these functions are simple. class CustomModel(models.Model): _name='' name = fields.Char('name') @api.model def create(self, values):...

Create Action menu item and process data with a wizard An Action menu appears on top of a model list or single page. We can add a new action to handle data according to our demand. <odoo> <data> <act_window id="custom_action"...

Add a menu item to Sales section This menu below will appear under Sales > Orders <record id="act_export_sale" model="ir.actions.act_window"> <field name="name">Export Sales</field> <field name="res_model"></field> <field name="view_mode">form</field> <field name="view_id" ref="export_sale_form_view"/> <field name="target">new</field> </record> <menuitem id="menu_sale_export" parent="sale.sale_order_menu" name="Export Sales" sequence="0" action="act_export_sale"/> You...
There is case you want to show a form for users to input before processing some logic. So we need to let user access this form from a menu item. Let's say we want to add a menu as child...
Discuss is the first page a user sees after logging in. In most cases, no one want to see Discuss as the landing page. There are many apps which depends on Discuss, so you can't uninstall it. Odoo starts at...

Leave a Comment

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

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.