Dedicated Odoo Programmer Answering FAQ about Odoo
Mobilunity has a great chance to interview one of its dedicated Odoo ERP programmer with more than 10 years of experience in the web development sphere. We have gathered all the interesting and useful Odoo developer interview questions on the web and asked our professional. Let’s see what he has to tell us.
Q #1 How Odoo Software Can Be Helpful in Business?
Open source ERP covering all areas of your business with a long history and a huge worldwide community. Odoo software is a module system which includes more than 1500 apps that can be used separately or can be integrated depending your business requirements. If you need something special, at first try search community repositories (OCA, IT-projects, others) and with chance 99% you will find satisfactory module. In those rare cases when you have very specific needs, you can hire ERP expert but it will be quicker, easier and cheaper than all current alternatives. The interface adheres on minimalism and simplicity. A user will see only most important information but all necessary information will be stored, calculated, affecting the business showing in the report.
Odoo uses the most powerful and fully open source (BSD license) database PostgreSQL. This improves security, reliability, and fault tolerance. As a result, we have a complex business system comparable to SAP. It will work out of the box for several areas (projects, inventory, fleet mgt), and will need some country related configurations for others (such systems newer work out of the box. Do not believe to those who tell the opposite. In the best, case their system will work in only one country). And comparing to SAP you will have fully controlled ERP independence of enterprise app developers team at a very low price. Also there are many specific features like automated actions which make usage of Odoo comfortable and simple. As you can see, Odoo helps in different layers of business.
Q#2 What’s the Best Odoo or ERPNext?
Reading forums you will notice one repeating argument of ERPNext followers and ERP specialist regarding ERPNext: “it works out of the box”. First of all, such complex systems never work “out of the box”. You always have some initial setup based on taxes, laws and accounting of country and business area. Odoo itself in early versions when it was “TinyERP” was indeed working “out of the box”. But the day has come when every ERP expert made a hard decision accepting that serious business means serious system. And starting from OpenERP it required initial setup and configurations. You will face the problems of configuration either at start or at moment when you install important modules (accounting, salary, manufacturing).
In functionality Odoo has at least one big advantage over ERPNext – automation. Cron tasks and automated actions let you fully automatize all processes in your business.
Other important thing is a possibility of adding new functionalities. Odoo developed its own inheritance system for easy expanding of present object. Inheritance in ERPNext is more Python-based. That’s why hiring an Odoo ERP programmer will be more expensive.
Q #3 What Is the Best Thing About Odoo?
- Simplicity. Odoo development is very simple. Its ideology is “Only what we need.” There are no huge forms with hundreds of fields, selections and tables. But it gives you everything you need.
- Flexibility. This one is opposite to previous. If you really need, you can have a form with hundreds of fields. Every request from a user can be implemented. But along with guidelines this also will be done with maximum possible simplicity. Odoo will never overload any ERP business analyst with too much information.
- Customization. The development via Python is fast, simple and funny. And an Odoo ERP specialist is not getting tired when working on it. All needed actions, calculations, procedures can be implemented when a client wants. But Odoo features always will leave enough freedom for ERP programmer to make its own set up. Many of modules follow this rule. Sometimes this even creates trouble. For example, imagine the situation: user needs to edit many records setting equal values to one of fields. Usually software gives you 2 ways. Firstly, it is a hard code “mass edit procedure” and usage of it, but call for an ERP expert if the fields list has changed. Secondly, you will have the list of all the fields your working on and which model has. And there could be tons of lines to search for proper fields. Odoo uses way of customization: after installing module “Mass edit” you will have the configuration menu where you can configure which fields in which modules users can set or clear by mass editing.
- Comfort. Easy to learn, easy to admin, easy to work with.
Q #4 How Secure Are Online Open ERP Systems Like Odoo?
Odoo supports all security technologies. The best practice is to run Odoo behind web server like nginx and use SSL. Working with Odoo you will have several layers of security and access. Client data is stored in dedicated database – no sharing of data between clients. Odoo technology staff doesn’t have an access to your password, and it is not possible to change it for you, you are the only one who knows it and can reset in case you lose it. Login credentials are always transmitted securely over HTTPS. This access improves security and efficiency: they can solve any issue you are facing instantly at any time without sharing your password, and ERP app developers can audit and control staff actions separately! The Helpdesk staff desires to respect your privacy, you need only access files and settings to diagnose and resolve your problem. Installations are ad-hoc and minimal to limit the number of services that could contain vulnerabilities (no PHP/MySQL stack, for example).
Q #5 Is It Possible to Setup Odoo Solutions without Having Python Knowledge?
Q #6 What Is the Easiest Way to Customize an Invoice Layout Using Odoo?
All print forms are stored as HTML templates. You can access to them using Odoo (Technica /User Interface/Views) and edit as you want. So you just need to find template used for invoice (it is report_invoice_document) and edit it. But it is not a right way if we develop a big project. There can be modules which extend this view. The right way is to create your own view where you inherit the old view and apply your changes to it.
Q #7 Is Odoo Working on Machine Learning, Data Science, and Artificial Intelligence?
I don’t think this is what Odoo was created for. If some companies have projects to develop these technologies, they can use Odoo for accounting and project management. Of course, Odoo, as well as any ERP CRM system, can use some algorithms for reporting and business analytics. That’s why there are so many ERP business analyst. But the system should be precisely checked and good proven. Of course, today we have a very strong trend focused on this technologies. Therefore, we have many startups which could be described a “X and machine learning” or “X and data science” and we can expect soon appearing of “Odoo and machine learning and/or data science”.
Q #8 Does Odoo Support More Than One Language?
Python itself has a great translation framework which is used in many web development frameworks. It named “_” (yes, it is just an underline). It can be used in Django, Web2py, Odoo and many other Python backends. So, how it works? Before translatable term (it could be a message string, field name, text constant, or even HTML document) you just put this symbol. And it will be stored in database as translatable term. Also you have a list of installed languages between which you can switch. Then, you can either generate and export .pot file or enter translations manually in database. Pot file is a well-known format for internationalization. It stores all translatable terms and you have a bunch of software where you can load this pot file and create .po file for each desired language.
Q #9 Does Odoo Support Integration/Connectivity with Other Systems?
Yes, Odoo supports it in many ways. You can use Odoo connector module, one of many modules done using this connector (Asterisk-Telephony, Magento-connector) or write your own. You have API for XML exchange, Odoo-rpc interface for remote calling and retrieving data etc. You can build your own system using Odoo OpenERP only for business logic calls.
All of this can be used by ERP app developers in connection with Odoo automation. For example, in one of my projects I created an Odoo integration with mailing service using queue job for delaying document sending to night and cron tasks which had been creating and sending PDF files.
Q #10 Is It Possible to Work on Different Odoo Databases with the Same App on Odoo OpenERP?
Yes, you can create as many databases as you need. But if your enterprise development company is holding you back for some reasons, then better way is to use multi company configuration. Odoo OpenERP have it’s own database manager where you can create, restore, and backup databases. But in reality, each enterprise development company uses it’s own set of modules. And small changes in logic makes databases incompatible. So, the best practice is to have one separate Odoo instance for each database. But if you are a server provider and your clients use the same modules set and this difference can be handled by configuration, then Odoo databases of all your clients could be located at single Odoo instance.
Q #11 Is There Any Way to Connect to an Odoo Server with MongoDB?
Odoo is a framework strongly closed to PostgreSQL. It uses many of it specific features. It is possible to use other DB on Odoo server, but you will lose all advantages of developed framework and even security. For this you will have to change most of core files, change procedures for creating and backuping. And even backup structure and file store would be changed. If you set this as target you can reach it, but any advantages you will get will be not worth of spending time and resources. So use PostgreSQL.
Q #12 What Are the Limitations of Using the Odoo Community Edition?
All limitations of lgpl license are applicable to Odoo. You would pay to commerce modules or Enterprise edition. But in all cases you will have access to source code. If you use community modules. Using community edition you will not have access to several features, for example gantt views (starting from v9), sale contracts (starting from v8), project task hierarchy some integration services. But there are many free alternatives in Odoo community.
You may be confused so I will explain: Odoo Community Edition is module set from official Odoo enterprise development company. You also can use Enterprise. Odoo Community itself is the worldwide brotherhood of developers who create custom modules for Odoo. And in their unofficial repositories you always can find alternatives for functionality you need. I even can say there will be cases when you will find community feature which is not reachable in enterprise.
Q# 13 How Complicated Is Odoo Development Under Windows?
Similar to Linux. Python is a cross platform technology. If you have PyCharm or LiClipse and properly configured PostgreSQL server you shouldn’t face any problem developing and debugging Odoo. The only problem ERP programmer could have is that Odoo open source ERP requires the specific versions of some specific libraries.
For example, I had an issues with libraries lxml, xlrd, pillow and several others. Usually this issues were solved by installing Python unofficial binary releases. Also, there could be a different behavior in some minor functions. Important: when you have several addon folders you should modify parser command when running Odoo development from source code.
Q #14 Which Odoo Installation Is Better for Production, Package or Source?
In serious projects neither is used. ERP specialist builds releases using Docker and deploy it on server. Also cloud is usable. You always will have the additional modules in your code.
So answer depends on what you need it for.
If you develop your own application which will use OpenERP features for its own work, then the package is the best for you. If you want to develop your modules and need the debug insides of Odoo, choose the source.
In production of small companies both options used, but source is much better, in my opinion.
Q #15 Is It Possible to Migrate from One Odoo Version to Another?
With each new version Odoo app developers get the migrations guidelines. Internal architecture and fields set are often changed from version to version, and, obviously, migration is a very complex task. But not that hard and long. Migration from version 6, 7, 8 is harder because of strong changes in API and change of a structure. In the 9th Odoo version it is divided to Community and Enterprise and many important modules become paid and inaccessible for free. Also the structure has changed a lot. And modules are totally incompatible. In this situation data must be remastered before migrating to a new version.
Q #16 What Are Odoo Controllers and Their Uses?
Controllers can return full webpage or just JSON file with data.
Controllers are easily inherited so they can be modified for your needs.
Q #17 How Is It Possible to Change Odoo UI?
You can define your own views, you can edit layout of your website to change your Odoo UI. You can extend web modules to change anything you want in Odoo. You can install predesigned themes from Odoo app store.
For example, community version of Odoo has a weird design of application navigation panel. I always install web-responsive module to make the interface more friendly.
In standard UI you are free to design elements as you wish. Color, size, place, custom widgets, everything you want can be added or changed following your desires.
Q #18 What Is One2many and Many2many Fields in Odoo and Its Uses?
Many2many is one of the relation types in the databases. There are 3 types: One2many – each class has a teacher; Many2one – each class has a list of students, but students can’t be in more than one class. And two sided relation: Many2many. All students have a list of exams to pass, and exams are not enclosed to one student.
In Odoo there are several widgets for this fields. It could be simple table (tree) used by default, or you can use custom widgets: tags, checkboxes, canban, or even design your own or use from community module (for example web_m2x_options module).
Q #19 Is It Possible to Develop a University ERP System in Odoo?
Very funny question because in the tutorial of module development we develop simple course management. However, there is complex application consisting of several modules for education which even includes library and laboratory management in Odoo ERP System.
Of course, this only handles a specific educational domain. University is full enterprise which has its own accounting, inventory, purchases, employees, etc. And there is a software Odoo has already developed for all these domains.
Q #20 Is It Possible to Make an Odoo Integration into a Django Website?
I heard about the successful tries of Odoo integration into Django website, but in my opinion it is useless. Odoo has its own website builder and its own API for developing business-logic. But the main advantage of Odoo in this case is that it has already developed full stack of business applications.
Technically Odoo ERP integration is asking Odoo for data and handling it at website pages with AJAX. There are several specific problems but everything is possible.
Q #21 How Can I Hide Any Module in Odoo 10?
Just uninstall it. Or manage the user rights. All access rights are managed through the groups. And each module has a related group or even groups for different access levels (accountant can register invoices, but only advisor can inspect chart of accounts). You can add your own groups and made modules invisible for users who don’t belong to specified groups. So your question is related to access rights management in Odoo 10.
Final Word from Mobilunity
We at Mobilunity hope that these questions for Odoo Python developer will get in handy for you whether you are an Odoo website developer yourself or looking for an Odoo specialist. In any case, we hope this interview was the pleasure to read. If you have more questions regarding Odoo and its development processes, let us know filling the contact us form and we will answer you as soon as possible,