- Django: Основной фреймворк для разработки веб-приложения.
- SQLite: Используется в качестве базы данных.
- Celery: Обеспечивает асинхронное выполнение задач.
- Redis: Используется как брокер сообщений для Celery.
Папка api содержит логику взаимодействия с внешними API маркетплейсов и управления данными.
Основные модули:
- services: Содержит классы для работы с API маркетплейсов.
- Ozon.py: Логика взаимодействия с API Ozon.
- Ymarket.py: Логика взаимодействия с API Яндекс.Маркет.
- WB.py: Логика взаимодействия с API Wildberries.
- views.py: Определяет функции для обработки HTTP-запросов, связанных с обновлением и получением данных о товарах.
- urls.py: Определяет маршруты для API.
- utils: Содержит вспомогательные модули для работы с данными.
- CacheManager.py: Управление кэшированием данных.
- OrderPoller.py: Логика опроса заказов.
- ReservePoller.py: Логика опроса резервов.
- ReturnPoller.py: Логика опроса возвратов.
- push_stocks.py: Логика отправки обновленных данных о запасах.
- tasks.py: Определяет задачи Celery для периодического выполнения операций, таких как опрос заказов и резервов.
Логика работы:
- Получение данных: Сервис периодически опрашивает API маркетплейсов для получения актуальных данных о заказах, резервах и возвратах.
- Обновление данных: Полученные данные обрабатываются и обновляются в базе данных. При необходимости данные о запасах отправляются обратно на маркетплейсы.
- Интерфейс пользователя: Пользователь может вручную управлять данными через веб-интерфейс, предоставляемый Django.
Автоматизация: Система настроена на автоматическое применение последних изменений с помощью Github Actions (пока без тестов).
Документация: API: API предоставляет следующие основные функции:
- Получение данных о товарах.
- Обновление данных о запасах.
- Управление заказами и резервами.
Управление проектом:
- Запуск в режиме разработки: sh build.sh dev
- Запуск в режиме деплоя: sh build.sh deploy
- Остановка проекта: sh build.sh stop
Отключаем prefill_cache и в маркетах ставим дельту на то время пока сервис не работал