Odoo Help

0

How do I load a large set of XML registers in Odoo v8?

By
E.M.
on 12/23/15, 5:56 AM 873 views

I have to load a large product catalog. Loading it via CSV is creating lots of issues due to base64 encoded image size so I would like to try importing the catalog via XML.


I know how to represent a product in XML, but I do not know how to load the actual XML. Once the XML file is prepared, how do I load it into Odoo v8?

Do I really need to create a module for this? I have large sets of records to load, having to install and reinstall all modules sounds weird. Is there any bulk load mechanism?

E.M.
on 12/23/15, 8:26 AM
1
Axel Mendoza
On 12/23/15, 6:23 AM

Take this as example of how to load an xml data in a module, at the end you just need to install the module:

File at the path views/data.xml

<?xml version="1.0" encoding="utf-8"?>

<openerp>

<data noupdate="1">

<record id="product_product_consultant" model="product.product">

<field name="categ_id" ref="product.product_category_5"/>

<field name="sale_ok" eval="True"/>

</record>

<record id="product_product_4" model="product.product">

<field name="name">iPad Retina Display</field>

<field name="categ_id" ref="ipad"/>

<field name="standard_price">500.0</field>

<field name="list_price">750.0</field>

<field name="type">consu</field>

<field name="uom_id" ref="product_uom_unit"/>

<field name="uom_po_id" ref="product_uom_unit"/>

<field name="description_sale">7.9‑inch (diagonal) LED-backlit, 128Gb

Dual-core A5 with quad-core graphics

FaceTime HD Camera, 1.2 MP Photos</field>

<field name="default_code">A2323</field>

<field name="attribute_value_ids" eval="[(6,0,[ref('product.product_attribute_value_1'), ref('product.product_attribute_value_3')])]"/>

</record>

<record id="product_product_4b" model="product.product">

<field name="default_code">A2324</field>

<field name="product_tmpl_id" ref="product_product_4_product_template"/>

<field name="attribute_value_ids" eval="[(6,0,[ref('product.product_attribute_value_1'), ref('product.product_attribute_value_4')])]"/>

</record>

</data>

</openerp>

Registered in __openerp__.py of your module like:

# -*- coding: utf-8 -*-

{

'name': 'Products Data',

'version': '1.1',

'author': 'OpenERP SA',

'depends': ['base', 'product'],

'website': 'https://www.odoo.com',

'description': """

""",

'data': [

'views/data.xml',

],

'installable': True,

'auto_install': False,

}

Do I really need to create a module for this? I have large sets of records to load, having to install and reinstall all modules sounds weird. Is there any bulk load mechanism?

E.M.
on 12/23/15, 8:26 AM

Until I know there is no other way that allow you to import the records doing the base64 encode

Axel Mendoza
on 12/23/15, 11:42 AM

There is the option of using XML RPC, I tried and it works (although it does not use XML). I also finally managed to find the issue in CSV and loaded all data through CSV. I anyway thank you for showing how to load data via XML, it might help in future.

E.M.
on 12/27/15, 8:21 PM

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

Register

Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)

Stats

Asked: 12/23/15, 5:56 AM
Seen: 873 times
Last updated: 12/24/15, 7:05 AM