feat: ozon sync fix
This commit is contained in:
		@@ -70,11 +70,12 @@ class OzonProductSynchronizer(BaseProductSynchronizer):
 | 
			
		||||
    async def create_products(self):
 | 
			
		||||
        self._clear()
 | 
			
		||||
        product_ids = []
 | 
			
		||||
 | 
			
		||||
        synchronized_product_ids = await self._get_synchronized_product_ids()
 | 
			
		||||
        async for product in self.api.get_all_products():
 | 
			
		||||
            product_ids.append(product['product_id'])
 | 
			
		||||
            if len(product_ids) > 100:
 | 
			
		||||
                break
 | 
			
		||||
            product_id = product['product_id']
 | 
			
		||||
            if product_id in synchronized_product_ids:
 | 
			
		||||
                continue
 | 
			
		||||
            product_ids.append(product_id)
 | 
			
		||||
        max_products = 1000
 | 
			
		||||
        for chunk in chunk_list(product_ids, max_products):
 | 
			
		||||
            data = {
 | 
			
		||||
@@ -176,6 +177,18 @@ class OzonProductSynchronizer(BaseProductSynchronizer):
 | 
			
		||||
            return [image]
 | 
			
		||||
        return []
 | 
			
		||||
 | 
			
		||||
    async def _get_synchronized_product_ids(self):
 | 
			
		||||
        synchronized_products_stmt = (
 | 
			
		||||
            select(
 | 
			
		||||
                OzonProduct.ozon_product_id
 | 
			
		||||
            )
 | 
			
		||||
            .where(
 | 
			
		||||
                OzonProduct.marketplace_id == self.marketplace.id
 | 
			
		||||
            )
 | 
			
		||||
        )
 | 
			
		||||
        synchronized_products = await self.session.execute(synchronized_products_stmt)
 | 
			
		||||
        synchronized_product_ids = synchronized_products.scalars().all()
 | 
			
		||||
        return set(synchronized_product_ids)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class OzonController(BaseMarketplaceController):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user