Модуль marketplace
Путь: app/marketplace/
Django app: app.marketplace
Назначение
Интеграция с маркетплейсами: Wildberries, Ozon, Яндекс Маркет. Синхронизация остатков, заказов, цен и аналитики.
Поддерживаемые маркетплейсы
| Маркетплейс | Файл | Функционал |
|---|---|---|
| Wildberries | wb_service.py, wb_marketing.py | Остатки, заказы, цены, реклама |
| Ozon | ozon_service.py, ozon_view.py | Остатки, заказы, цены |
| Яндекс Маркет | yandex_market.py | Остатки, заказы |
| Сбер Мегамаркет | в разработке | — |
| Магнит | в разработке | — |
Ключевые модели
MarketPlace
python
class MarketPlace(Model):
name = CharField() # "Wildberries", "Ozon"
code = CharField() # wb, ozon, ym
api_key = CharField() # API-ключ
warehouse_id = CharField() # ID склада маркетплейса
is_active = BooleanField()MarketPlaceToAssortiment
Привязка товара к SKU маркетплейса:
python
class MarketPlaceToAssortiment(Model):
marketplace = FK(MarketPlace)
assortiment = FK(Assortiment)
external_id = CharField() # nmID (WB) / product_id (Ozon)
external_sku = CharField() # артикул продавца
barcode = CharField()
price = DecimalField() # цена на площадке
stock_quantity = IntegerField() # остаток, отправленный на МПAPI
| Endpoint | Описание |
|---|---|
GET /api/v2/market-place/ | Список маркетплейсов |
GET /api/v2/market-place/wb/orders/ | Заказы WB |
POST /api/v2/market-place/wb/stocks/ | Обновить остатки WB |
GET /api/v2/market-place/ozon/orders/ | Заказы Ozon |
POST /api/v2/market-place/ozon/stocks/ | Обновить остатки Ozon |
ViewSets
WildberiesProxyViewSet— проксирование запросов к WB APIOzonAPIViewSet— работа с Ozon API
Синхронизация через Celery
Остатки и заказы обновляются автоматически через задачи:
python
# app/marketplace/tasks.py
@app.task
def sync_wb_stocks():
"""Синхронизация остатков с Wildberries"""
...
@app.task
def sync_ozon_orders():
"""Загрузка новых заказов с Ozon"""
...Связи
app.document— заказы от маркетплейсов превращаются в документыapp.stock— остатки, отправляемые на МП
Подробнее об интеграции: Маркетплейсы