feat: ozon sync

This commit is contained in:
2024-09-02 19:19:41 +03:00
parent 82236a7750
commit d24be8fb7d
8 changed files with 337 additions and 39 deletions

View File

@@ -4,34 +4,18 @@ from collections import defaultdict
from sqlalchemy import select
from sqlalchemy.orm import selectinload
from external.marketplace.base.product_synchronizer import BaseProductSynchronizer
from external.marketplace.wildberries.core import WildberriesMarketplaceApi
from marketplaces.base.core import BaseMarketplaceController
from models import Product, ProductBarcode, ProductImage, WildberriesProduct
class WildberriesProductSynchronizer:
products: list[Product]
barcodes: list[ProductBarcode]
images: list[ProductImage]
wildberries_products: list[WildberriesProduct]
def __init__(self, session, marketplace, api):
self.session = session
self.marketplace = marketplace
self.api = api
self.products = []
self.barcodes = []
self.images = []
self.wildberries_products = []
def _clear(self):
self.products = []
self.barcodes = []
self.images = []
self.wildberries_products = []
class WildberriesProductSynchronizer(BaseProductSynchronizer):
marketplace_products: list[WildberriesProduct]
api: WildberriesMarketplaceApi
async def _write(self):
instances = self.products + self.wildberries_products + self.barcodes + self.images
instances = self.products + self.marketplace_products + self.barcodes + self.images
start = time.time()
self.session.add_all(instances)
await self.session.commit()
@@ -125,7 +109,7 @@ class WildberriesProductSynchronizer:
self.products.append(product)
self.barcodes.extend(barcodes)
self.images.extend(images)
self.wildberries_products.append(wildberries_product)
self.marketplace_products.append(wildberries_product)
async def create_products(self):
self._clear()