Версия: 1.0.0
Дата: 2025-12-19
Статус: draft
Единая платформа для:
- Управления товарами и ценами (PIM)
- Обработки заказов с маркетплейсов (OZON, WB)
- Дропшипинг (закупка у поставщиков под заказ)
- Базовая CRM (клиенты, заказы)
Срок: 2-3 недели до рабочего прототипа
┌─────────────────────────────────────────┐
│ WEB UI (FastAPI + Jinja2) │
│ http://localhost:8500 │
├─────────────────────────────────────────┤
│ API │
│ /api/v1/... │
├────────┬────────┬────────┬─────────────┤
│ auth │ pim │ orders │ marketplace │
├────────┴────────┴────────┴─────────────┤
│ NocoDB API │
│ http://localhost:8080 │
├─────────────────────────────────────────┤
│ PostgreSQL │
│ (существующая БД NocoDB) │
└─────────────────────────────────────────┘
Минимум для MVP:
- Логин/пароль (1 админ)
- JWT токен в cookie
- Защита всех роутов
Таблицы: используем существующую Users
# Роуты
POST /auth/login # Вход
POST /auth/logout # Выход
GET /auth/me # Текущий пользователь
Функционал MVP:
- Список товаров с фильтрами
- Карточка товара (просмотр/редактирование)
- Импорт прайсов поставщиков
- Расчёт цен (закупка → продажа)
Таблицы NocoDB:
- pim_products — товары (5623)
- Prices_History — цены поставщиков (4126)
- v_product_prices — VIEW с расчётными ценами
# Роуты
GET /pim/products # Список
GET /pim/products/{id} # Карточка
PUT /pim/products/{id} # Редактирование
POST /pim/prices/import # Импорт прайса
GET /pim/prices/history # История цен
UI страницы:
- /products — таблица товаров
- /products/{id} — карточка товара
- /prices — управление ценами
Функционал MVP:
- Список заказов со всех каналов
- Детали заказа
- Смена статуса
- Печать этикеток
Таблицы NocoDB:
- OZON_Orders — заказы OZON
- OZON_OrderItems — позиции
- Order — унифицированные заказы
# Роуты
GET /orders # Список
GET /orders/{id} # Детали
PUT /orders/{id}/status # Смена статуса
GET /orders/{id}/label # Этикетка
POST /orders/sync # Синхронизация с МП
UI страницы:
- /orders — список заказов
- /orders/{id} — детали заказа
- /orders/new — ожидающие обработки
Функционал MVP:
- Синхронизация заказов OZON
- Обновление статусов
- Получение этикеток
Используем: существующий код из @ozon.api
# Роуты
POST /marketplace/ozon/sync/orders # Синхр. заказов
POST /marketplace/ozon/sync/products # Синхр. товаров
GET /marketplace/ozon/status # Статус подключения
projects/unified/
├── CLAUDE.md
├── app/
│ ├── main.py # FastAPI app
│ ├── config.py # Настройки
│ ├── dependencies.py # DI (auth, db)
│ │
│ ├── auth/
│ │ ├── router.py
│ │ ├── service.py
│ │ └── schemas.py
│ │
│ ├── pim/
│ │ ├── router.py
│ │ ├── service.py
│ │ └── schemas.py
│ │
│ ├── orders/
│ │ ├── router.py
│ │ ├── service.py
│ │ └── schemas.py
│ │
│ ├── marketplace/
│ │ ├── router.py
│ │ ├── ozon/
│ │ │ ├── client.py # ← из @ozon.api
│ │ │ └── sync.py
│ │ └── schemas.py
│ │
│ ├── templates/ # Jinja2 HTML
│ │ ├── base.html
│ │ ├── login.html
│ │ ├── products/
│ │ ├── orders/
│ │ └── components/
│ │
│ └── static/
│ ├── css/
│ └── js/
│
├── requirements.txt
├── .env
└── run.sh
| Компонент | Технология |
|---|---|
| Backend | FastAPI |
| Frontend | Jinja2 + HTMX + TailwindCSS |
| База | NocoDB (PostgreSQL) |
| Auth | JWT + httponly cookie |
| Деплой | Docker / systemd |
Не требуется! Используем существующую NocoDB:
- База: pt7k98pv0fwi1el
- URL: http://localhost:8080
- Все таблицы уже есть
# Разработка
cd projects/unified
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8500
# Продакшн
docker-compose up -d
После запуска MVP добавляем:
1. CRM модуль (клиенты, воронка)
2. Dropship модуль (закупки у поставщиков)
3. WB/YM интеграции
4. AI роботы (из mcrm)
5. Мобильное приложение
Версия: 1.0.0