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_active = models.BooleanField('Activado', default=False, null=True, blank=True)
|
||||
credentials = JSONField(null=True)
|
||||
shipping_terms = models.TextField('Condiciones de envío', null=True, blank=True)
|
||||
|
||||
# internal
|
||||
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'),
|
||||
'description': BeautifulSoup(info.get('description', ''), "lxml").text,
|
||||
'sku': info.get('sku'),
|
||||
'price': info.get('price'),
|
||||
'price': None if info.get('price') == '' else info.get('price'),
|
||||
}
|
||||
|
||||
# alternative method
|
||||
@@ -73,20 +73,27 @@ def create_imported_product(info, company, history, user):
|
||||
except Exception as e:
|
||||
logging.error(f"Could not create product instance: {str(e)}")
|
||||
return None
|
||||
try:
|
||||
# get image
|
||||
headers={"User-Agent" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
|
||||
image_url = info['images'][0]['src']
|
||||
response = requests.get(image_url, stream=True, headers=headers)
|
||||
response.raw.decode_content = True
|
||||
image = Image.open(response.raw)
|
||||
# save using File object
|
||||
img_io = BytesIO()
|
||||
image.save(img_io, format='JPEG')
|
||||
new.image.save(f"{new.name}-{new.sku}.jpg", File(img_io), save=False)
|
||||
new.save()
|
||||
except Exception as e:
|
||||
logging.error(f"Could not add image to product: {str(e)}")
|
||||
|
||||
if len(info['images']) > 0:
|
||||
try:
|
||||
# get image
|
||||
headers={"User-Agent" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
|
||||
image_url = info['images'][0]['src']
|
||||
response = requests.get(image_url, stream=True, headers=headers)
|
||||
assert(response.status_code==200)
|
||||
response.raw.decode_content = True
|
||||
image = Image.open(response.raw)
|
||||
# save using File object
|
||||
img_io = BytesIO()
|
||||
image.save(img_io, format=image.format)
|
||||
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
|
||||
else:
|
||||
logging.error(f"{serializer.errors}")
|
||||
|
||||
Reference in New Issue
Block a user