def product_meli_upload_multi_images(self, cr, uid, ids, context=None): user_obj = self.pool.get('res.users').browse(cr, uid, uid) company = user_obj.company_id product_obj = self.pool.get('product.product') product = product_obj.browse(cr, uid, ids[0]) CLIENT_ID = company.mercadolibre_client_id CLIENT_SECRET = company.mercadolibre_secret_key ACCESS_TOKEN = company.mercadolibre_access_token REFRESH_TOKEN = company.mercadolibre_refresh_token # meli = Meli(client_id=CLIENT_ID, client_secret=CLIENT_SECRET, access_token=ACCESS_TOKEN, refresh_token=REFRESH_TOKEN) if product.images == None: return {'status': 'error', 'message': 'no images to upload'} image_ids = [] c = 0 #loop over images for product_image in product.images: print "product_image: ", product_image imagebin = base64.b64decode(product_image.image) files = { 'file': ('image.png', imagebin, "image/png"), } print files response = meli.upload("/pictures", files, {'access_token': meli.access_token}) print response.content rjson = response.json() if ("error" in rjson): print "Error!" raise osv.except_osv( _('MELI WARNING'), _('No se pudo cargar la imagen en MELI! Error: %s , Mensaje: %s, Status: %s' ) % ( rjson["error"], rjson["message"], rjson["status"], )) #return { 'status': 'error', 'message': 'not uploaded'} else: print "image id:", rjson['id'] image_ids += [{'id': rjson['id']}] c = c + 1 product.write({"meli_multi_imagen_id": "%s" % (image_ids)}) return image_ids
def product_meli_upload_image( self, cr, uid, ids, context=None ): user_obj = self.pool.get('res.users').browse(cr, uid, uid) company = user_obj.company_id product_obj = self.pool.get('product.product') product = product_obj.browse(cr, uid, ids[0]) CLIENT_ID = company.mercadolibre_client_id CLIENT_SECRET = company.mercadolibre_secret_key ACCESS_TOKEN = company.mercadolibre_access_token REFRESH_TOKEN = company.mercadolibre_refresh_token # meli = Meli(client_id=CLIENT_ID,client_secret=CLIENT_SECRET, access_token=ACCESS_TOKEN, refresh_token=REFRESH_TOKEN) if product.image==None or product.image==False: return { 'status': 'error', 'message': 'no image to upload' } # print "product_meli_upload_image" #print "product_meli_upload_image: " + response.content imagebin = base64.b64decode(product.image) imageb64 = product.image # print "data:image/png;base64,"+imageb64 # files = [ ('images', ('image_medium', imagebin, "image/png")) ] files = { 'file': ('image.jpg', imagebin, "image/jpeg"), } #print files response = meli.upload("/pictures", files, { 'access_token': meli.access_token } ) # print response.content rjson = response.json() if ("error" in rjson): raise osv.except_osv( _('MELI WARNING'), _('No se pudo cargar la imagen en MELI! Error: %s , Mensaje: %s, Status: %s') % ( rjson["error"], rjson["message"],rjson["status"],)) return { 'status': 'error', 'message': 'not uploaded'} _logger.info( rjson ) if ("id" in rjson): #guardar id product.write( { "meli_imagen_id": rjson["id"], "meli_imagen_link": rjson["variations"][0]["url"] }) #asociar imagen a producto if product.meli_id: response = meli.post("/items/"+product.meli_id+"/pictures", { 'id': rjson["id"] }, { 'access_token': meli.access_token } ) else: return { 'status': 'warning', 'message': 'uploaded but not assigned' } return { 'status': 'success', 'message': 'uploaded and assigned' }
def product_meli_upload_image( self, cr, uid, ids, context=None ): user_obj = self.pool.get('res.users').browse(cr, uid, uid) company = user_obj.company_id product_obj = self.pool.get('product.product') product = product_obj.browse(cr, uid, ids[0]) CLIENT_ID = company.mercadolibre_client_id CLIENT_SECRET = company.mercadolibre_secret_key ACCESS_TOKEN = company.mercadolibre_access_token REFRESH_TOKEN = company.mercadolibre_refresh_token # meli = Meli(client_id=CLIENT_ID,client_secret=CLIENT_SECRET, access_token=ACCESS_TOKEN, refresh_token=REFRESH_TOKEN) if product.image==None: return { 'status': 'error', 'message': 'no image to upload' } # print "product_meli_upload_image" #print "product_meli_upload_image: " + response.content imagebin = base64.b64decode(product.image) imageb64 = product.image # print "data:image/png;base64,"+imageb64 # files = [ ('images', ('image_medium', imagebin, "image/png")) ] files = { 'file': ('image.png', imagebin, "image/png"), } #print files response = meli.upload("/pictures", files, { 'access_token': meli.access_token } ) # print response.content rjson = response.json() if ("error" in rjson): raise osv.except_osv( _('MELI WARNING'), _('No se pudo cargar la imagen en MELI! Error: %s , Mensaje: %s, Status: %s') % ( rjson["error"], rjson["message"],rjson["status"],)) return { 'status': 'error', 'message': 'not uploaded'} _logger.info( rjson ) if ("id" in rjson): #guardar id product.write( { "meli_imagen_id": rjson["id"], "meli_imagen_link": rjson["variations"][0]["url"] } ) #asociar imagen a producto if product.meli_id: response = meli.post("/items/"+product.meli_id+"/pictures", { 'id': rjson["id"] }, { 'access_token': meli.access_token } ) else: return { 'status': 'warning', 'message': 'uploaded but not assigned' } return { 'status': 'success', 'message': 'uploaded and assigned' }
def product_meli_upload_multi_images( self, cr, uid, ids, context=None ): user_obj = self.pool.get('res.users').browse(cr, uid, uid) company = user_obj.company_id product_obj = self.pool.get('product.product') product = product_obj.browse(cr, uid, ids[0]) CLIENT_ID = company.mercadolibre_client_id CLIENT_SECRET = company.mercadolibre_secret_key ACCESS_TOKEN = company.mercadolibre_access_token REFRESH_TOKEN = company.mercadolibre_refresh_token # meli = Meli(client_id=CLIENT_ID,client_secret=CLIENT_SECRET, access_token=ACCESS_TOKEN, refresh_token=REFRESH_TOKEN) if product.images==None: return { 'status': 'error', 'message': 'no images to upload' } image_ids = [] c = 0 #loop over images for product_image in product.images: if (product_image.image): print "product_image.image:" + str(product_image.image) imagebin = base64.b64decode( product_image.image ) #files = { 'file': ('image.png', imagebin, "image/png"), } files = { 'file': ('image.jpg', imagebin, "image/jpeg"), } response = meli.upload("/pictures", files, { 'access_token': meli.access_token } ) print "meli upload:" + response.content rjson = response.json() if ("error" in rjson): raise osv.except_osv( _('MELI WARNING'), _('No se pudo cargar la imagen en MELI! Error: %s , Mensaje: %s, Status: %s') % ( rjson["error"], rjson["message"],rjson["status"],)) #return { 'status': 'error', 'message': 'not uploaded'} else: image_ids+= [ { 'id': rjson['id'] }] c = c + 1 print "image_ids:" + str(image_ids) product.write( { "meli_multi_imagen_id": "%s" % (image_ids) } ) return image_ids