21 KiB
ПРАВИЛА КАБИНЕТА ФУЛФИЛМЕНТА
📋 Файл создан на основе анализа системы - детальные правила для кабинета фулфилмента
📑 ОГЛАВЛЕНИЕ
- 🏭 Общие характеристики кабинета фулфилмента
- 🗂️ Основные разделы кабинета
- 🔒 Правила доступа фулфилмента
- 📋 Критические правила для rules2.md
1. 🏭 ОБЩИЕ ХАРАКТЕРИСТИКИ КАБИНЕТА ФУЛФИЛМЕНТА
1.1 Принципы доступа
- МАКСИМАЛЬНЫЕ ПРАВА: Фулфилмент имеет доступ ко ВСЕМ разделам системы
- АДАПТИВНАЯ НАВИГАЦИЯ: Sidebar изменяется в зависимости от
user.organization.type === "FULFILLMENT"
- ЭКСКЛЮЗИВНЫЕ КОМПОНЕНТЫ: Услуги, Сотрудники, Статистика фулфилмента доступны ТОЛЬКО фулфилменту
- СПЕЦИАЛЬНЫЙ РОУТИНГ: При нажатии "Поставки" →
/fulfillment-supplies
(не/supplies
)
1.2 Архитектурные особенности
- GraphQL проверки:
skip: user?.organization?.type !== 'FULFILLMENT'
в запросах - Условное отображение:
{user?.organization?.type === "FULFILLMENT" && (...)}
- Адаптивные отступы:
getSidebarMargin()
для responsive design - Полинг данных: Статистика обновляется каждую минуту (
pollInterval: 60000
)
2. 🗂️ ОСНОВНЫЕ РАЗДЕЛЫ КАБИНЕТА
2.1 🏠 Главная страница (/dashboard
)
Компонент: DashboardHome
Содержание:
- Основная информация организации
- Статус онлайн пользователя
- Быстрый доступ к основным разделам
2.2 🏭 Склад фулфилмента (/fulfillment-warehouse
)
Компонент: FulfillmentWarehouseDashboard
2.2.1 Структура склада по модулям (ОБЯЗАТЕЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ)
- 📦 ПРОДУКТЫ - готовые к отправке товары
- 🛒 ТОВАРЫ - базовые товары от поставщиков
- "На складе" - готовы к обработке
- "В обработке" - в процессе создания продукта
- ❌ БРАК - товары с дефектами, требуют утилизации
- ↩️ ВОЗВРАТЫ С ПВЗ - возвращенные товары, к обработке
- 🎯 РАСХОДНИКИ СЕЛЛЕРОВ - материалы для селлеров
- ⚙️ РАСХОДНИКИ ФУЛФИЛМЕНТА - операционные материалы (КЛИКАБЕЛЬНЫЙ модуль)
2.2.2 Система учета склада
Дополнительные значения (показатели движения):
- ПРИБЫЛО - количество поступивших на склад за период
- УБЫЛО - количество списанных со склада за период
Основные значения (текущие остатки):
- ФОРМУЛА: Основные значения = Предыдущие остатки + Прибыло - Убыло
- ОБНОВЛЕНИЕ: В реальном времени с изменениями за сутки
- ИСТОЧНИК: GraphQL query
GET_FULFILLMENT_WAREHOUSE_STATS
2.2.3 Структура данных склада (3-уровневая иерархия)
🔵 УРОВЕНЬ 1: МАГАЗИНЫ
├── ТехноМир (синий - blue-400/500)
├── Стиль и Комфорт (розовый - pink-400/500)
└── Зелёный Дом (изумрудный - emerald-400/500)
↓
🟢 УРОВЕНЬ 2: ТОВАРЫ (зеленый - green-500)
↓
🟠 УРОВЕНЬ 3: ВАРИАНТЫ ТОВАРОВ (оранжевый - orange-500)
Цветовое кодирование:
- Каждый уровень имеет цветной индикатор увеличивающегося размера
- Цветная левая граница с увеличивающимся отступом и толщиной
- Скроллбары в цвете уровня
- Контрастный цвет текста для читаемости
2.2.4 Статистика склада
6 основных карточек статистики:
- Продукты - готовые к отправке
- Товары - в обработке
- Брак - требует утилизации
- Возвраты с ПВЗ - к обработке
- Расходники селлеров - материалы клиентов
- Расходники фулфилмента - операционные материалы
2.3 📦 Поставки фулфилмента (/fulfillment-supplies
)
Компонент: SuppliesDashboard
2.3.1 Структура: 2 основные вкладки
A) 🛒 ПОСТАВКИ ТОВАРОВ:
- Детализированные товары ФФ - планы и факты поставок с маршрутами
- Товары ФФ - общие поставки товаров от селлеров
- Возвраты с ПВЗ - обработка возвращенных товаров
B) 🔧 ПОСТАВКИ РАСХОДНИКОВ:
- Заказы расходников - управление заказами от селлеров
- Расходники селлеров - материалы для клиентов
- Создание поставок - формирование новых поставок расходников
2.3.2 Workflow поставок товаров
Этапы обработки:
- Planned - поставка запланирована
- In-transit - товар в пути
- Delivered - доставлен на склад
- Completed - обработка завершена
Данные поставки:
- Номер поставки (ФФ-YYYY-XXX)
- Селлер (организация, магазин, менеджер)
- Количество позиций и грузовых мест
- Объем и стоимость поставки
- Ответственный сотрудник и логистика
2.4 📊 Статистика фулфилмента (/fulfillment-statistics
)
Компонент: FulfillmentStatisticsDashboard
2.4.1 Блоки аналитики (сворачиваемые)
1. НАКОПЛЕННАЯ СТАТИСТИКА (allTime: true
):
- Обработано товаров (общий объем)
- Выявлено брака (всего единиц)
- Поставок получено
- Общий доход (за все время)
- Выполнено заказов (успешных отгрузок)
- Удовлетворенность клиентов (средний рейтинг)
2. ОТГРУЗКА НА ПЛОЩАДКИ (marketplaces: true
):
- Отправлено на Wildberries
- Отправлено на Ozon
- Отправлено на другие площадки
3. АНАЛИТИКА ПРОИЗВОДИТЕЛЬНОСТИ (performance: false
):
- Среднее время обработки (на единицу товара)
- Уровень брака (от общего объема)
- Уровень возвратов (возвраты с площадок)
- Удовлетворенность клиентов
4. МЕТРИКИ СКЛАДА (warehouseMetrics: true
):
- Эффективность склада
- Оборачиваемость товаров
- Коэффициент использования
5. УМНЫЕ РЕКОМЕНДАЦИИ (smartRecommendations: true
):
- Автоматические советы по оптимизации
- Предложения по улучшению процессов
6. БЫСТРЫЕ ДЕЙСТВИЯ (quickActions: true
):
- Часто используемые операции
- Горячие клавиши для действий
2.4.2 Ключевые показатели в заголовке
- Общий доход (зеленый - success)
- Качество (синий - X/5.0 рейтинг)
- Уровень брака (процент от общего объема)
2.5 🔧 Услуги (/services
)
Компонент: ServicesDashboard
Условие доступа: user?.organization?.type === "FULFILLMENT"
2.5.1 Структура: 3 обязательные вкладки
A) 🛠️ УСЛУГИ (defaultValue="services"
):
- CRUD операции: создание, редактирование, удаление услуг
- Управление ценами и описаниями
- Загрузка изображений услуг (
imageUrl
) - GraphQL:
GET_MY_SERVICES
,CREATE_SERVICE
,UPDATE_SERVICE
,DELETE_SERVICE
B) 🚚 ЛОГИСТИКА:
- Создание маршрутов доставки (откуда → куда)
- Тарификация: цена до 1м³ и свыше 1м³
- Группированные локации:
- Мой фулфилмент (название организации)
- Рынки (предустановленные)
- Склады Wildberries
- Склады Ozon
- GraphQL:
GET_MY_LOGISTICS
,CREATE_LOGISTICS
,UPDATE_LOGISTICS
,DELETE_LOGISTICS
C) 📦 РАСХОДНИКИ:
- Управление расходниками фулфилмента
- Интеграция с модулем "Услуги" - селлеры могут использовать в услугах
- Списание со складских остатков при использовании
- Стоимость включается в стоимость услуги
2.5.2 Правила логистики
Создание маршрута:
- Обязательные поля: Название маршрута, Откуда, Куда
- Ценообразование: Цена до 1м³, Цена свыше 1м³
- Описание услуг: Дополнительные условия доставки
- Проверка: Только организации типа FULFILLMENT могут создавать логистику
2.6 👥 Сотрудники (/employees
)
Компонент: EmployeesDashboard
Условие доступа: user?.organization?.type === "FULFILLMENT"
2.6.1 Структура: 2 основные вкладки
A) 👥 СОТРУДНИКИ (defaultValue="combined"
):
Управление персоналом:
- CRUD операции: создание, редактирование, удаление сотрудников
- Статусы сотрудников:
ACTIVE
,VACATION
,SICK
,FIRED
- Формы добавления: Компактная (
showCompactForm
) / Полная форма - Поиск и фильтрация по имени, должности, статусу
Табель рабочего времени:
- Навигация по месяцам: текущий год/месяц с кнопками ←/→
- Отметки по дням: статус дня и количество отработанных часов
- GraphQL:
GET_EMPLOYEE_SCHEDULE
,UPDATE_EMPLOYEE_SCHEDULE
- Данные:
{date, hoursWorked, employee: {id}}
B) 📋 ОТЧЕТЫ (value="reports"
):
- Сводные отчеты по сотрудникам за период
- Экспорт данных табеля
- Аналитика рабочего времени
2.6.2 Интерфейс сотрудников
Обязательные поля сотрудника:
interface Employee {
firstName: string; // Имя
lastName: string; // Фамилия
middleName?: string; // Отчество
position: string; // Должность
phone: string; // Телефон
email?: string; // Email
status: "ACTIVE" | "VACATION" | "SICK" | "FIRED";
salary?: number; // Зарплата
hireDate: string; // Дата найма
// ... дополнительные поля
}
Валидация данных:
- Имя/Фамилия: минимум 2 символа, только буквы/пробелы/дефисы
- Телефон: обязательный, формат +7 (999) 123-45-67
- Email: валидация формата при заполнении
- Должность: минимум 2 символа
2.7 🌐 Универсальные разделы
2.7.1 🛒 Маркет (/market
)
- Просмотр товаров всех поставщиков
- Создание заказов у поставщиков
- Управление корзиной и избранным
2.7.2 🤝 Партнеры (/partners
)
- Управление контрагентами всех типов
- Входящие/исходящие заявки на сотрудничество
2.7.3 💬 Мессенджер (/messenger
)
- Внутренняя связь между организациями
- Поддержка файлов, изображений, голосовых сообщений
2.7.4 ⚙️ Настройки (/settings
)
- Профиль организации и пользователя
- API ключи маркетплейсов (WB, Ozon)
- Банковские реквизиты
3. 🔒 ПРАВИЛА ДОСТУПА ФУЛФИЛМЕНТА
3.1 Эксклюзивный доступ (только фулфилмент)
TypeScript проверки:
{user?.organization?.type === "FULFILLMENT" && (
// Компоненты доступны только фулфилменту
)}
Эксклюзивные разделы:
- Услуги (
/services
) - создание услуг, логистики, управление расходниками - Сотрудники (
/employees
) - управление персоналом и табелем - Статистика фулфилмента (
/fulfillment-statistics
) - детальная аналитика
3.2 Специальная логика роутинга
При нажатии "Поставки" в sidebar:
const handleSuppliesClick = () => {
switch (user?.organization?.type) {
case "FULFILLMENT":
router.push("/fulfillment-supplies"); // Специальный роут
break;
case "SELLER":
router.push("/supplies");
break;
// ... другие типы
}
};
3.3 GraphQL проверки доступа
В Apollo Client запросах:
const { data } = useQuery(GET_MY_SERVICES, {
skip: user?.organization?.type !== "FULFILLMENT", // Пропуск для не-фулфилмента
});
В GraphQL резолверах:
// Проверка типа организации на сервере
if (currentUser.organization.type !== "FULFILLMENT") {
throw new GraphQLError("Доступно только для фулфилмент центров");
}
4. 📋 КРИТИЧЕСКИЕ ПРАВИЛА ДЛЯ RULES2.MD
4.1 🔴 КРИТИЧЕСКИЕ ПРАВИЛА (обязательны к добавлению)
ПРАВИЛО FF-01: Структура склада фулфилмента
- ОБЯЗАТЕЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ модулей: ПРОДУКТ→ТОВАР→БРАК→ВОЗВРАТЫ→РАСХОДНИКИСЕЛЛЕРОВ→РАСХОДНИКИФУЛФИЛМЕНТА
- ЗАПРЕЩЕНО: Изменение порядка модулей
- ОБЯЗАТЕЛЬНО: Модуль "Расходники фулфилмента" должен быть кликабельным
ПРАВИЛО FF-02: Права доступа фулфилмента
- ЭКСКЛЮЗИВНЫЙ ДОСТУП: Услуги, Сотрудники, Статистика фулфилмента
- ПРОВЕРКА:
user?.organization?.type === "FULFILLMENT"
- GraphQL:
skip: user?.organization?.type !== 'FULFILLMENT'
ПРАВИЛО FF-03: Система учета склада
- ДВОЙНОЙ УЧЕТ: Основные значения + дополнительные значения
- ФОРМУЛА: Основные = Предыдущие остатки + Прибыло - Убыло
- ОБНОВЛЕНИЕ: Статистика в реальном времени с изменениями за сутки
ПРАВИЛО FF-04: Workflow создания продукта
- ПРОЦЕСС: Товары "на складе" → "в обработке" → ПРОДУКТ "готов к отправке"
- ПЛАН/ФАКТ: Корректировка статистики при выявлении расхождений
- ОБЯЗАТЕЛЬНО: Фиксация брака в процессе работы (вкладка "В работе")
4.2 🟡 ВАЖНЫЕ ПРАВИЛА (рекомендуются к добавлению)
ПРАВИЛО FF-05: Модуль услуг фулфилмента
- СТРУКТУРА: 3 обязательные вкладки (Услуги, Логистика, Расходники)
- ЛОГИСТИКА: Создание маршрутов только фулфилментом
- РАСХОДНИКИ: Интеграция с модулем "Услуги", списание со склада
ПРАВИЛО FF-06: Управление сотрудниками
- СТАТУСЫ: 4 обязательных статуса (ACTIVE, VACATION, SICK, FIRED)
- ТАБЕЛЬ: Месячная навигация с отметками по дням
- ВАЛИДАЦИЯ: Строгие правила валидации полей сотрудника
ПРАВИЛО FF-07: Специальный роутинг
- ПОСТАВКИ: Фулфилмент →
/fulfillment-supplies
(не/supplies
) - УСЛОВНОЕ ОТОБРАЖЕНИЕ: Разные компоненты для разных типов организаций
4.3 🟢 ПОЛЕЗНЫЕ ПРАВИЛА (опциональны)
ПРАВИЛО FF-08: UI/UX паттерны фулфилмента
- ЦВЕТОВАЯ СХЕМА: 3-уровневая иерархия с цветовым кодированием
- СВОРАЧИВАЕМЫЕ БЛОКИ: Статистика с состояниями
expandedSections
- АДАПТИВНОСТЬ:
getSidebarMargin()
для responsive design
ПРАВИЛО FF-09: Статистика и аналитика
- 6 ОСНОВНЫХ БЛОКОВ: Накопленная, Площадки, Производительность, Склад, Рекомендации, Действия
- REAL-TIME: Обновление каждую минуту (
pollInterval: 60000
) - КЛЮЧЕВЫЕ ПОКАЗАТЕЛИ: Доход, Качество, Уровень брака в заголовке
📎 ПРИЛОЖЕНИЯ
Приложение A: GraphQL запросы фулфилмента
// Основные запросы
GET_MY_SERVICES; // Услуги фулфилмента
GET_MY_LOGISTICS; // Логистические маршруты
GET_MY_EMPLOYEES; // Сотрудники организации
GET_FULFILLMENT_WAREHOUSE_STATS; // Статистика склада
GET_WAREHOUSE_PRODUCTS; // Товары на складе
GET_MY_FULFILLMENT_SUPPLIES; // Расходники фулфилмента
// Мутации
CREATE_SERVICE, UPDATE_SERVICE, DELETE_SERVICE;
CREATE_LOGISTICS, UPDATE_LOGISTICS, DELETE_LOGISTICS;
CREATE_EMPLOYEE, UPDATE_EMPLOYEE, DELETE_EMPLOYEE;
Приложение B: Компоненты фулфилмента
// Основные dashboard компоненты
FulfillmentWarehouseDashboard; // Склад фулфилмента
FulfillmentStatisticsDashboard; // Статистика
ServicesDashboard; // Услуги (3 вкладки)
EmployeesDashboard; // Сотрудники
SuppliesDashboard; // Поставки фулфилмента
// Специализированные компоненты
ServicesTab, LogisticsTab, SuppliesTab; // Вкладки услуг
EmployeeInlineForm, EmployeeEditInlineForm; // Формы сотрудников
FulfillmentSuppliesTab, FulfillmentConsumablesOrdersTab; // Поставки
📅 Создано: На основе анализа системы Sfera
🎯 Статус: Готово к интеграции в rules2.md
📝 Версия: 1.0