Actualizando imagenes de productos con xmlrpc
A partir de las imagenes de un website
Trabajando para un cliente con un extenso catalogo de productos, me encontré con la necesidad de tener que actualizar los mismos en base a sus imagenes que se encontraban alojadas en su website. Como hacerlo entonces? Para ello utilicé dos herramientas; xmlrpc (como era de suponerse) y el paquete wget de Python, el cual me resultó muy util. Como podrán suponer en base al nombre, dicho módulo implementa el comando wget en python. Y es muy simple, despues de instalarlo:
pip install wget
se lo puede utilizar de la siguiente forma:
image_url = 'http://www.demo.com/image.png'
image_filename = wget.download(image_url)
print(image_filename)
SQL = "select code,filename from productos"
cur.execute(SQL)
rows = cur.fetchall()
image_url = 'https://www.demo.com/imagenes/'
for i,row in enumerate(rows):
print(i,row)
image_filename = wget.download(image_url + row['filename'])
print(image_filename)
product_tmpl_id = sock.execute(dbname,uid,pwd,'product.template','search',[('default_code','=',row['code'])])
if product_tmpl_id:
f = open(image_filename,'rb')
image = f.read()
imageBase64 = base64.b64encode(image)
vals = {
'image_1920': imageBase64,
}
return_id = sock.execute(dbname,uid,pwd,'product.template','write',product_tmpl_id,vals)
print return_id
Acerca de:
Gustavo Orrillo
Passionate about programming, he has implemented Odoo for different types of businesses since 2010. In Moldeo Interactive he is a founding Partner and Programmer; In addition to writing on the Blog about different topics related to the developments he makes.