minor fix get billing info

This commit is contained in:
wilson gomez 2021-04-22 15:12:47 -05:00
parent cb5bcdf4c1
commit c395146ac6
1 changed files with 16 additions and 3 deletions

View File

@ -136,6 +136,14 @@ class MercadoLibre(SaleWebChannel):
res = self.get_response(URI)
return res.json()
def get_billing_info_api(self, order_id):
if not order_id:
return None
URI = 'https://api.mercadolibre.com/orders/%s/billing_info?access_token=%s' % (
order_id, self.access_token)
res = self.get_response(URI)
return res.json()
def _return_sale(self, sale):
pool = Pool()
Sale = pool.get('sale.sale')
@ -197,15 +205,20 @@ class MercadoLibre(SaleWebChannel):
sfm_id = sale_['shipping']['id']
shipment_ = self.get_shipment_api(sfm_id)
if sale_.get('buyer'):
billing_info = self.get_billing_info_api(sale_['id'])
customer = sale_['buyer']
dom_party = [('id_reference', '=', str(customer['id']))]
if customer['billing_info'].get('doc_number'):
dom_party = [('id_number', '=', str(customer['billing_info']['doc_number']))]
if billing_info and billing_info.get('doc_number'):
dom_party = [('id_number', '=', str(billing_info['doc_number']))]
parties = Party.search(dom_party)
if parties:
party = parties[0]
else:
customer['receiver_address'] = shipment_['receiver_address']
customer['billing_info'] = billing_info['billing_info']
for dic in customer['billing_info']['additional_info']:
customer['billing_info'][dic.values()[0].lower()] = dic.values()[1]
customer['billing_info']['additional_info'].pop()
party = self._create_party(customer)
sale_items = sale_['order_items']
create_lines = []
@ -237,7 +250,7 @@ class MercadoLibre(SaleWebChannel):
for line in sale_items:
item = line['item']
sku_code = item['seller_sku']
if sku_code:
generic = False
if sku_code.count('+') > 0: