Importing data into odoo sometimes is more difficult as it seems to be at first. Very much relational data in odoo tables are giving you a hard time making the import. Much default values have to be set in odoo correctly and they have to be included by the mapping.
Data migration has always been a main issue. Data export is a odoo standard feature. It is available in any list views. An export file from odoo data export makes sure, that the exported file can also be imported back to odoo again, if the Import Compatible Export was set. odoo export does not require very much technical expertise. But – export data has the same structure as the import data should have. This means, that the source data must have this structure before import – and doing this with excel or other databases can be dangerous.
Most of the information you find in the web about methods to import data into odoo are explaining the procedure to export data from odoo first, then structurise source data and configurate an import-file with the same structure as the export-file.
There are many articles and videos, that demonstrate the import of data into OpenERP odoo by using the XML-RPC method which works through the ORM (Object Relationship Model). But - unfortunately going through an XML-RPC does take its time. Each record insert can take more than a full second. By importing thousands of records (or perhaps millions of records) the XML-RPC method is just too slow to be a satisfying solution.
And - importing data is always a chance to review source data. Without an import- or migration-tool, revise of data usually has to be done manually. But this also costs a lot of time and it is insecure method.
Therefore we developped a plattform with a webbased service for migration and data import in odoo. www.odoo-import.com is the webbased service from giordano.ch for importing data into odoo.
There are three different ranges, which data import knows. The first is the lowest range of flat data structure, easy and not that complicated. So it can be done by simply exporting data from odoo and import the same structured flat data into odoo. The highest range is the one of migration from main releases of odoo. This is huge, complex and it is better done by odoo itself, especially, when the odoo application database contains warehouse, purchase, manufacturing, complex accountig, analytic accounting and further more and the whole data history within all relashionship has to be migrated up to a higher main release. By realising a migration, a very important issue is the analysis of data consistency. A migration can only be built successfully when data consistency can be analysed and proofed by a specific reporting tool.
That means, that odoo-import covers the medium range of data import complexity. It is possible to import relationship structured data and proof data consistency within a logfile reporting. Whenever relational datastructure is given, odoo-import ist the best solution, because with odoo import it is no problem to configurate the right helper for the mapping.
In addition to the basic import functionality, odoo import provides also the advantage of using cronjobs. Recurring imports can be set based on a existing import configuration.
Main features and advantages
- time saving – once you configured your import, testing is very efficient
- analyse testimport with logfile – adjust mapping and helper
- economy of changemanagement – import several and changed data from source with same configuration
- recurring imports with cronjob
odoo-import is made for companies who use odoo and have the need for data import or migration, recurring data import and it is also made for odoo implementing partners, who support their customers to import or migrate data. odoo-import supports odoo version 8 an 9 (and further versions).
odoo Import: odoo-import.com
odoo Software: odoo-software.com
How does odoo-import operate?
odoo-import is structured into three main parts:
- connections: the configuration of connections
- import: the configuration of the database mapping and helper
- cronjob: recurring imports
The configuration of connections is a setting to connect source file and odoo application database. Source-file has to be a .csv document which you can export from any other application database or from another odoo application. The target application has to be a odoo application database. These settings can be saved. No data has to be stored somewhere or uploaded to odoo-import. The source .csv file remains there where it originally is. It will not be copied, uploaded or stored somewhere else.
The main part is „import“ – here the functionality applies tool for mapping. Basic information like database and model has to be set. Afterwards, configuration of the mapping and definig the helpers can be started. The mapping table provides two trees of database fields – on the left side the tree of the source .csv data file and on the right side the tree of the odoo database model. Missing fields in the source .csv file can easily be added to the tree.
Sometimes the odoo model tree can be very large, that’s why odoo-import provides a search-field functionality. Once the required odoo target field is located, it can be mapped with the accurate database field of the source .csv file per drag and drop.
The medium columne contains the helper functionality. A helper has always a relationship between the source and the target field. Its functionality can be configurated and stored separatly under „helpers“. A helper can be configurated for instance „true/false“ or setting default values or „regex“ and many more. Once the configuration is done – if a helper is neccessary at all – you can use helpers many time in the mapping menue. The whole configuration of mapping can be saved for editing further on.
After clicking on „start import“, the .csv source file has to be selected – that’s beacause of security reasons and to make sure, that the recent version oft the .csv file is connected for the import. Now, import data can be verified. odoo-import ist proofing the data in the .csv file and is checking out inconsistent data and lists the founded errors. Before the final import is done, well detected. So, configuration can be adjusted and a new verification can be started.
If all adjustements have been proofed, the import can be started and up to 10 records can be transfered to the destinated model in the odoo databse. Here you can check out immediately, whether everything was imported correct. If not, one do not have to start the whole import process from the beginning. It is adequate to correct the configuration and test it again. This is helpful and recomended to do before the final import with mass data is started – then mass data import can take some time. So one can save a lot of time.
Importing complex database structures
'many2one': By importing values into a 'many2one' field, the specific values must be already existing in the relational model of the odoo target database. The operation with the field type many2many is comparable.
Based on a stored mapping configuration an a initial import of data, one can use the cronjob function for scheduling recurring imports. Not: also with cronjobs no data will be uploaded or stored to odoo-import.com.
Possible usages of odoo-import
- import data from other systems, databases and applications into odoo
- first import of data by implementing odoo the first time, like customers, suppliers, products containing all relational data
- migration and datatransfer from older odoo versions into new or changed models of odoo
- recurring or periodic import of – usually changed and mutated data such as price lists from suppliers, catalog data and so on
odoo-import is a trusted application
- the source .csv data file is not stored at all ant it remains in the source folder of the foreign system
- odoo-import reads data from the .csv file without storing them
- during the import, odoo-import verifies the data bevore it writes them directly into the target model of the odoo database – so data consistent is assured
- passwords do not have to be saved (but you can save them)
step by step
Create a connection to the target odoo instance.
1) Sample Record
You can see here one sample record of your csv file. Click on any of the values and you see the field highlighted in 2)
2) CSV Field
All the columns in your csv are listed here. The name in your header record is shown.
3) Odoo Field
You can drag a field in 5) and drop it here. That's how you match your csv fields to the odoo model. If you want to get rid of the mapping, just click on the field in 3).
4) Helper / Default Value
If you have mapped a field with relations, e.g. categories you should define a default value or set a helper.
Mapping field "name": no default value or helper needed, just import the value from my csv file and store it in the field name.
Mapping filed "Category": Here, a helper is essential. You have to map all the categories in your csv file to the categories in odoo. See more in section helpers.
Every field in the selected model, e.g. products, is displayed here. If the odoo model returns any help text it is also displayed, just press the button with the question mark. Search here for the correct field and then drag it over to the appropriate field in 3).
Helpers are used to map data relations. Just because the category in your csv filed is name "Category A" we don't match it to "Category A" in odoo automatically. We need an unique identifier. You can also map data in a whole new way, let's say you import your data from another software and decide the old category "Category Z" is not used anymore you can map it here to any category you want. There are two types of helpers.
Choose two fields and merge them together. If you have a phone number stored in two fields "+41 71" and "221 00 50" you can now merge them together.
Here an example of a category mapper step by step:
1) Create new helper. Select a mapped field from the dropdown.
2) Choose your input file. We don't save your files and at this point we need all the different categories in your file.
3) You now see all the categories on the left in your file . For each category there is a dropdown on the right with all the categories from your odoo instance. Now just map all the categories as you wish.
Choose the same file again and then validate it. If everything is valid you can import 10 records for free. You should check the imported records in odoo and if everything is ok import all records.