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