Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
4 Risposte
4645 Visualizzazioni

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?

Avatar
Abbandona

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?

Risposta migliore

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,

}

Avatar
Abbandona
Autore

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?

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

Autore

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.

Post correlati Risposte Visualizzazioni Attività
0
lug 17
2624
3
ago 22
40569
1
mar 16
4111
0
set 18
3790
1
apr 16
7286