improvements to WC migration script
This commit is contained in:
@@ -46,6 +46,7 @@ class Company(models.Model):
|
|||||||
is_validated = models.BooleanField('Validado', default=False, null=True, blank=True)
|
is_validated = models.BooleanField('Validado', default=False, null=True, blank=True)
|
||||||
is_active = models.BooleanField('Activado', default=False, null=True, blank=True)
|
is_active = models.BooleanField('Activado', default=False, null=True, blank=True)
|
||||||
credentials = JSONField(null=True)
|
credentials = JSONField(null=True)
|
||||||
|
shipping_terms = models.TextField('Condiciones de envío', null=True, blank=True)
|
||||||
|
|
||||||
# internal
|
# internal
|
||||||
created = models.DateTimeField('date of creation', auto_now_add=True)
|
created = models.DateTimeField('date of creation', auto_now_add=True)
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ def create_imported_product(info, company, history, user):
|
|||||||
'name': info.get('name'),
|
'name': info.get('name'),
|
||||||
'description': BeautifulSoup(info.get('description', ''), "lxml").text,
|
'description': BeautifulSoup(info.get('description', ''), "lxml").text,
|
||||||
'sku': info.get('sku'),
|
'sku': info.get('sku'),
|
||||||
'price': info.get('price'),
|
'price': None if info.get('price') == '' else info.get('price'),
|
||||||
}
|
}
|
||||||
|
|
||||||
# alternative method
|
# alternative method
|
||||||
@@ -73,20 +73,27 @@ def create_imported_product(info, company, history, user):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"Could not create product instance: {str(e)}")
|
logging.error(f"Could not create product instance: {str(e)}")
|
||||||
return None
|
return None
|
||||||
try:
|
|
||||||
# get image
|
if len(info['images']) > 0:
|
||||||
headers={"User-Agent" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
|
try:
|
||||||
image_url = info['images'][0]['src']
|
# get image
|
||||||
response = requests.get(image_url, stream=True, headers=headers)
|
headers={"User-Agent" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
|
||||||
response.raw.decode_content = True
|
image_url = info['images'][0]['src']
|
||||||
image = Image.open(response.raw)
|
response = requests.get(image_url, stream=True, headers=headers)
|
||||||
# save using File object
|
assert(response.status_code==200)
|
||||||
img_io = BytesIO()
|
response.raw.decode_content = True
|
||||||
image.save(img_io, format='JPEG')
|
image = Image.open(response.raw)
|
||||||
new.image.save(f"{new.name}-{new.sku}.jpg", File(img_io), save=False)
|
# save using File object
|
||||||
new.save()
|
img_io = BytesIO()
|
||||||
except Exception as e:
|
image.save(img_io, format=image.format)
|
||||||
logging.error(f"Could not add image to product: {str(e)}")
|
new.image.save(f"{new.name}-{new.sku}.jpg", File(img_io), save=False)
|
||||||
|
new.save()
|
||||||
|
except AssertionError as e:
|
||||||
|
logging.error(f"Source image [{info['images'][0]['src']}] not reachable: {response.status_code}")
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Could not add image to product {new.sku} from [{info['images'][0]['src']}]: {str(e)}")
|
||||||
|
else:
|
||||||
|
logging.info(f"No image for Product {new.name}")
|
||||||
return new
|
return new
|
||||||
else:
|
else:
|
||||||
logging.error(f"{serializer.errors}")
|
logging.error(f"{serializer.errors}")
|
||||||
|
|||||||
Reference in New Issue
Block a user