E-Commerce

JoyCity Enterprise Platform

JoyCity Enterprise Platform — 1

Бизнес-платформа для управления операциями на маркетплейсе Wildberries, созданная для сотрудников компании, работающих с несколькими аккаунтами WB Seller (юридическими лицами). Система состоит из четырёх сервисов — API на Rust/Axum, фронтенд на Next.js, реверс-прокси на Python/FastAPI для портала WB Seller и фоновый сервис синхронизации данных на Rust — всё оркестрировано через Docker Swarm за Traefik с автоматическим SSL.

Аутентификация и контроль доступа

Двухтокенная JWT-система (2ч access + 30д refresh) с HttpOnly кросс-доменными cookies, автоматическим прозрачным обновлением токенов и поддержкой мультисессий с возможностью отзыва. 10+ ролей с защитой администратора на уровне базы данных, предотвращающей манипуляции с ролью ADMIN через API. wb-proxy делегирует все криптографические операции бэкенду через внутренний API, защищённый общим секретным ключом.

Управление пользователями и аккаунтами

Полный CRUD для пользователей с назначением ролей, сменой пароля, редактированием имени и загрузкой аватара (обработка на клиенте до 512×512 JPEG, хранение в S3). Поддержка нескольких аккаунтов WB Seller (юрлиц), каждый со своим набором учётных данных портала WB и API-ключом. Двойная валидация учётных данных — WB cookies через прокси + API-ключ через бэкенд — перед созданием аккаунта. Пользователь привязан к одному аккаунту в каждый момент времени.

Назначение артикулов

Ежемесячное назначение артикулов (nmId) по пользователям с валидацией по синхронизированным данным заказов. Поддержка массового импорта из Excel. Артикулы определяют, что каждый пользователь видит в отфильтрованном портале WB Seller. Инвалидация кэша через общий Redis при изменении назначений.

Фильтрованный прокси WB Seller

Реверс-прокси на wb-seller.{domain}, позволяющий менеджерам работать с реальным UI портала WB Seller, но видеть только назначенные им артикулы. Фильтрует JSON-ответы, Excel-экспорты, заказы, остатки, поставки, аналитику, отзывы, скидки, отчёты и рекламные кампании CMP. Вычисляет персональный агрегированный финансовый баланс из локально синхронизированных данных отчётов. Обрабатывает URL-перезапись по 15+ поддоменам WB, JS-инъекции для браузерных перезаписей, кэширование статики и автоматическое обновление WB-токенов.

Синхронизация данных WB

Фоновый сервис на Rust, непрерывно синхронизирующий заказы, продажи и детализированные финансовые отчёты из WB Statistics API для всех зарегистрированных аккаунтов продавцов. Хранит данные as-is без трансформаций. Обрабатывает rate limiting, пагинацию, инкрементальную синхронизацию, изоляцию ошибок по аккаунтам и дедупликацию.

KPI-рейтинг и логистика

Платформа ранжирует менеджеров по KPI-метрикам на основе данных Wildberries и выполняет планирование логистических операций офис-склад.

Инфраструктура и DevOps

Бэкап PostgreSQL в AWS S3 по запросу из UI. Swagger UI на /api/swagger-ui под ролью SWAGGER. Мониторинг Prometheus + Grafana с экспортёрами для PostgreSQL и Redis, плюс метрики Traefik. GitLab CI/CD с zero-downtime rolling updates через Docker Swarm с автоматическим откатом при провале health check. HTTPS-only с HSTS, заголовками безопасности и non-root контейнерами.

Ключевые особенности

  • 4-сервисная архитектура — Rust API + Next.js фронтенд + Python прокси + Rust sync worker
  • Фильтрованный портал WB — реальный UI Wildberries с видимостью артикулов по пользователям
  • Двухтокенный JWT — HttpOnly кросс-доменная авторизация с прозрачным обновлением
  • 6-ролевой RBAC — защита администратора на уровне БД
  • Фоновая синхронизация — непрерывный сбор заказов, продаж и финансовых отчётов
  • KPI-рейтинг — метрики эффективности менеджеров из данных WB
  • Массовый импорт из Excel — ежемесячное назначение артикулов с инвалидацией кэша
  • Zero-downtime деплой — rolling updates Docker Swarm с авто-откатом
  • Тёмная/светлая тема — переключаемая пользователем через Tailwind CSS
  • EN/RU локализация — полная интернационализация фронтенда