From b5d195998c88c0c2d9a192156dfe18fe141f2d6e Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 20 Mar 2025 16:43:03 +0300 Subject: [PATCH] feat: new handies for ozon --- external/marketplace/ozon/core.py | 8 +++++--- marketplaces/ozon/core.py | 9 ++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/external/marketplace/ozon/core.py b/external/marketplace/ozon/core.py index 2dd82d0..2ff25f2 100644 --- a/external/marketplace/ozon/core.py +++ b/external/marketplace/ozon/core.py @@ -25,7 +25,7 @@ class OzonMarketplaceApi(BaseMarketplaceApi): return "https://api-seller.ozon.ru" async def get_products(self, data: dict) -> dict: - method = '/v2/product/list' + method = '/v3/product/list' response = await self._method('POST', method, json=data) return response @@ -36,7 +36,9 @@ class OzonMarketplaceApi(BaseMarketplaceApi): data = { 'limit': limit, 'last_id': last_id, - + 'filter':{ + 'visibility': 'ALL', + } } response = await self.get_products(data) if not response: @@ -54,7 +56,7 @@ class OzonMarketplaceApi(BaseMarketplaceApi): break async def get_products_info(self, data: dict) -> dict: - method = '/v2/product/info/list' + method = '/v3/product/info/list' response = await self._method('POST', method, json=data) return response diff --git a/marketplaces/ozon/core.py b/marketplaces/ozon/core.py index 0e6f618..b2d6188 100644 --- a/marketplaces/ozon/core.py +++ b/marketplaces/ozon/core.py @@ -36,7 +36,7 @@ class OzonProductSynchronizer(BaseProductSynchronizer): if primary_image: image = ProductImage( product=product, - image_url=primary_image + image_url=primary_image[0] ) return [image] product_images = [] @@ -84,7 +84,7 @@ class OzonProductSynchronizer(BaseProductSynchronizer): products_info = await self.api.get_products_info(data) if not products_info: continue - result = products_info.get('result') + result = products_info if not result: continue items = result.get('items') @@ -131,7 +131,7 @@ class OzonProductSynchronizer(BaseProductSynchronizer): products_info = await self.api.get_products_info(data) if not products_info: continue - result = products_info.get('result') + result = products_info if not result: continue items = result.get('items') @@ -169,6 +169,9 @@ class OzonProductSynchronizer(BaseProductSynchronizer): def _update_images(self, product, product_info): existing_images = {image.image_url for image in product.images} primary_image = product_info.get('primary_image') + if isinstance(primary_image,list) and primary_image: + primary_image = primary_image[0] + if primary_image and primary_image not in existing_images: image = ProductImage( product=product,