Files
sfera/rules.md

807 lines
44 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ПРАВИЛА СИСТЕМЫ СКЛАДА ПОСТАВЩИКА
> ⚠️ **ВАЖНОЕ ПРИМЕЧАНИЕ**: Данные из этого файла могут быть удалены только с разрешения пользователя. Все изменения должны согласовываться.
## 1. 🎯 ОСНОВНЫЕ ПРИНЦИПЫ
### 1.0 Структура системы по кабинетам
**🏢 КАБИНЕТ ПОСТАВЩИКА** - управляет созданием и поставкой:
- **ТОВАР** - базовые товары от поставщика
- **РАСХОДНИКИ** - материалы и вспомогательные товары
**🏭 КАБИНЕТ ФУЛФИЛМЕНТА** - принимает, обрабатывает и управляет всеми типами:
- **ТОВАР** - базовые товары от поставщиков (принятые на склад)
- **БРАК** - товары с дефектами (производные от товара)
- **ПРОДУКТ** - готовые к продаже товары (производные от товара)
- **РАСХОДНИКИ ФУЛФИЛМЕНТА** - операционные материалы фулфилмента
- **РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для товаров селлеров
### 1.1 Типизация предметов
- **ОБЯЗАТЕЛЬНО**: Каждый предмет должен иметь один из следующих типов:
**ТИПЫ ПРЕДМЕТОВ ПО КАБИНЕТАМ:**
**🏢 КАБИНЕТ ПОСТАВЩИКА:**
1. **ТОВАР** - базовый тип товара от поставщика
2. **РАСХОДНИКИ** - материалы и вспомогательные товары от поставщика
**🏭 КАБИНЕТ ФУЛФИЛМЕНТА:**
1. **ТОВАР** - базовые товары от поставщиков (принятые на склад)
2. **БРАК** - производная от товара (товар с дефектами)
3. **ПРОДУКТ** - производная от товара (готовый к продаже товар)
4. **РАСХОДНИКИ ФУЛФИЛМЕНТА** - операционные материалы фулфилмента
5. **РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для товаров селлеров
- **ЗАПРЕЩЕНО**: Создание предметов без указания типа
- **ВАЖНО**: Товар ≠ Продукт (это разные сущности в системе)
- **ПРАВИЛО**: Тип определяет логику обработки, отображения и workflow в системе
- **КЛАССИФИКАЦИЯ РАСХОДНИКОВ**: Поставщик создает просто "РАСХОДНИКИ". При заказе, в зависимости от типа заказчика, они становятся:
- **Расходники фулфилмента** - если заказывает фулфилмент-центр
- **Расходники селлеров** - если заказывает селлер
### 1.2 Правила производных типов
- **БРАК**:
- **ПРОИСХОЖДЕНИЕ**: Создается на основе существующего товара
- **СВЯЗЬ**: Обязательная связь с родительским товаром
- **УЧЕТ**: Отдельный учет в статистике потерь
- **WORKFLOW**: Особый процесс списания и утилизации
- **ПРОДУКТ**:
- **ПРОИСХОЖДЕНИЕ**: Создается на основе товара после обработки
- **ОТЛИЧИЕ**: Товар - сырье, Продукт - готовая единица к продаже
- **СТАТУС**: Имеет собственный жизненный цикл
- **УЧЕТ**: Отдельная статистика от базового товара
- **РАСХОДНИКИ ФУЛФИЛМЕНТА**:
- **НАЗНАЧЕНИЕ**: Для внутренних операций фулфилмент-центра
- **ЗАКАЗЧИК**: Фулфилмент-центр заказывает для себя
- **УЧЕТ**: В статистике операционных расходов фулфилмента
- **РАСХОДНИКИ СЕЛЛЕРОВ**:
- **НАЗНАЧЕНИЕ**: Для товаров и операций селлеров
- **ЗАКАЗЧИК**: Селлер заказывает через фулфилмент
- **УЧЕТ**: В статистике расходов селлера
### 1.3 Уникальность артикулов
- **ОБЯЗАТЕЛЬНО**: Артикул должен быть уникальным в рамках организации
- **ПРАВИЛО**: Система должна автоматически генерировать артикул СФ при создании
- **ФОРМАТ**: `СФ-{ТИП}-{КОД_КАТЕГОРИИ}-{КОД_ОРГАНИЗАЦИИ}-{TIMESTAMP}-{RANDOM}`
- **ТИПЫ В АРТИКУЛЕ**:
- `TOV` - Товар
- `BRK` - Брак
- `R` - Расходники (классифицируются при заказе)
- `PRD` - Продукт
### 1.4 Обязательные поля
- **КРИТИЧЕСКИ ВАЖНО**: Название, артикул, цена > 0, тип предмета
- **ОБЯЗАТЕЛЬНО**: Количество (может быть 0 для предзаказа)
- **ДЛЯ ПРОИЗВОДНЫХ ТИПОВ**: Обязательная связь с родительским предметом (для брака и продукта)
- **ДЛЯ РАСХОДНИКОВ**: Обязательно указание подтипа (фулфилмента или селлеров)
- **РЕКОМЕНДУЕТСЯ**: Описание, категория, основное изображение
## 2. 🔒 ПРАВИЛА ДОСТУПА И БЕЗОПАСНОСТИ
### 2.1 Контроль доступа
- **ЗАПРЕЩЕНО**: Поставщик не может добавлять собственные предметы в корзину
- **ПРАВИЛО**: Только активные предметы (`isActive: true`) отображаются в маркете
- **ОГРАНИЧЕНИЕ**: Доступ к заказам только для участников процесса (создатель, поставщик, фулфилмент)
- **ПО ТИПАМ ПРЕДМЕТОВ**:
- **ТОВАР**: Доступен всем типам организаций для заказа
- **БРАК**: Доступен только для просмотра, заказ запрещен
- **РАСХОДНИКИ**: Доступны всем типам организаций для заказа
- При заказе фулфилмент-центром классифицируются как "расходники фулфилмента"
- При заказе селлером классифицируются как "расходники селлеров"
- **ПРОДУКТ**: Доступен для заказа после подтверждения готовности
### 2.2 Проверка остатков
- **ОБЯЗАТЕЛЬНО**: Проверять наличие предмета перед добавлением в корзину
- **ПРАВИЛО**: Количество в заказе не может превышать остаток на складе
- **ИСКЛЮЧЕНИЕ**: Предзаказы (если реализована функция)
- **ОСОБЕННОСТИ ПО ТИПАМ**:
- **ТОВАР/ПРОДУКТ**: Стандартная проверка остатков
- **БРАК**: Остатки учитываются, но заказ запрещен
- **РАСХОДНИКИ**: Проверка с учетом резервирования под активные заказы
### 2.3 Валидация данных
- **ОБЯЗАТЕЛЬНО**: Проверка корректности всех числовых значений (цена, вес, количество)
- **ПРАВИЛО**: Цена должна быть больше 0
- **ОГРАНИЧЕНИЕ**: Вес и габариты должны быть положительными числами
## 3. 📊 ПРАВИЛА СТАТИСТИКИ И АНАЛИТИКИ
### 3.1 Актуализация данных
- **КРИТИЧЕСКИ ВАЖНО**: При изменении количества в карточке данные актуализируются во всей системе
- **ПРАВИЛО**: Статистика обновляется в реальном времени
- **ОБЯЗАТЕЛЬНО**: Отслеживание изменений для аналитики
### 3.2 Отображение метрик
- **ОБЯЗАТЕЛЬНО**: Блок статистики в верхней части раздела склад
- **СОСТАВ**: Общие остатки, заказано, в пути, остаток, продано
- **ПРАВИЛО**: Подсвечивать предметы с остатками ниже критического уровня
- **РАЗДЕЛЕНИЕ ПО ТИПАМ И КАБИНЕТАМ**:
**В КАБИНЕТЕ ПОСТАВЩИКА**:
- **ТОВАРЫ**: Общая статистика товаров поставщика
- **РАСХОДНИКИ**: Материалы и вспомогательные товары (классифицируются при заказе)
**В КАБИНЕТЕ ФУЛФИЛМЕНТА**:
- **ТОВАРЫ**: Базовые товары от поставщиков (принятые на склад)
- **ПРОДУКТЫ**: Отдельный блок готовой продукции
- **БРАК**: Статистика потерь и списаний
- **РАСХОДНИКИ ФУЛФИЛМЕНТА**: Операционные материалы фулфилмента
- **РАСХОДНИКИ СЕЛЛЕРОВ**: Материалы для товаров селлеров
## 4. 🚚 ПРАВИЛА WORKFLOW ПОСТАВОК
### 4.1 Жизненный цикл статусов
```
PENDING → SUPPLIER_APPROVED → CONFIRMED → LOGISTICS_CONFIRMED → SHIPPED → IN_TRANSIT → DELIVERED
```
- **ЗАПРЕЩЕНО**: Пропускать промежуточные статусы
- **ПРАВИЛО**: Каждое изменение статуса должно сопровождаться уведомлением
- **ОБЯЗАТЕЛЬНО**: Логирование всех изменений статусов
### 4.2 Уведомления
- **АВТОМАТИЧЕСКИ**: Отправка уведомления поставщику при создании заказа
- **ОБЯЗАТЕЛЬНО**: Уведомление всех участников при изменении статуса
- **ФОРМАТ**: Структурированные сообщения с деталями заказа
### 4.3 Роли и ответственность
- **ПОСТАВЩИК**: Создание товаров, одобрение заказов, отгрузка
- **СЕЛЛЕР**: Создание заказов, отслеживание поставок
- **ФУЛФИЛМЕНТ**: Приемка товаров, выбор логистики, управление складом
- **ЛОГИСТИКА**: Подтверждение доставки, транспортировка
## 5. 🖼️ ПРАВИЛА РАБОТЫ С ИЗОБРАЖЕНИЯМИ
### 5.1 Управление изображениями
- **РЕКОМЕНДУЕТСЯ**: Загружать несколько изображений для каждого товара
- **ОБЯЗАТЕЛЬНО**: Выбирать основное изображение для отображения в списках
- **ПРАВИЛО**: Изображения должны быть в поддерживаемых форматах (JPG, PNG, WebP)
- **ОГРАНИЧЕНИЕ**: Максимальный размер файла изображения
### 5.2 Отображение товаров
- **ПРАВИЛО**: 5 карточек в ряд в карточном режиме
- **ОБЯЗАТЕЛЬНО**: Возможность переключения между строчным и карточным режимами
- **ФУНКЦИЯ**: Предпросмотр изображений при наведении/клике
## 6. 🛒 ПРАВИЛА КОРЗИНЫ И ИЗБРАННОГО
### 6.1 Система корзины
- **ПРАВИЛО**: Одна корзина на организацию
- **ПРОВЕРКА**: Автоматическая проверка доступности товаров при добавлении
- **ОГРАНИЧЕНИЕ**: Нельзя добавлять неактивные товары
- **ФУНКЦИЯ**: Автоматическое обновление количества при повторном добавлении
### 6.2 Система избранного
- **ПРАВИЛО**: Индивидуальные избранные для каждого пользователя
- **ФУНКЦИЯ**: Быстрое добавление из избранного в корзину
- **СИНХРОНИЗАЦИЯ**: Проверка актуальности товаров в избранном
## 7. 🔄 ПРАВИЛА ИНТЕГРАЦИИ
### 7.1 Интеграция с маркетплейсами
- **WILDBERRIES**: Обязательная проверка активности API ключа
- **СИНХРОНИЗАЦИЯ**: Регулярное обновление данных из внешних источников
- **ПРАВИЛО**: Сохранение локальных копий данных для офлайн работы
### 7.2 Глобальная интеграция
- **ОБЯЗАТЕЛЬНО**: Товары поставщиков отображаются в глобальном маркете
- **ПРАВИЛО**: Разделение по типам (товары/расходники) в интерфейсе
- **СИНХРОНИЗАЦИЯ**: Данные склада синхронизируются с модулем аналитики
### 7.3 Интеграция с модулем "Услуги"
- **РАСХОДНИКИ ФУЛФИЛМЕНТА В УСЛУГАХ**:
- Селлеры могут использовать расходники фулфилмента в разделе "Услуги / Расходники"
- Для создания продукта из товара
- Расходники списываются с остатков фулфилмента
- Стоимость включается в стоимость услуги
- **WORKFLOW ИСПОЛЬЗОВАНИЯ**:
1. Селлер выбирает услугу "Создание продукта"
2. Указывает базовый товар
3. Выбирает необходимые расходники фулфилмента
4. Фулфилмент обрабатывает заказ и создает продукт
5. Расходники списываются, создается готовый продукт
## 8. 💰 ПРАВИЛА ЦЕНООБРАЗОВАНИЯ И ЛОГИСТИКИ
### 8.1 Система тарификации
- **ОБЯЗАТЕЛЬНО**: Указание тарифов для грузов до 1м³ и свыше 1м³
- **ПРАВИЛО**: Автоматический расчет стоимости доставки по объему
- **ФУНКЦИЯ**: Отображение примерной стоимости доставки при заказе
### 8.2 Управление ценами
- **ПРАВИЛО**: Цена за единицу и цена за комплект (если применимо)
- **ВАЛИДАЦИЯ**: Все цены должны быть больше 0
- **ФУНКЦИЯ**: История изменения цен для аналитики
## 9. 🔍 ПРАВИЛА ПОИСКА И ФИЛЬТРАЦИИ
### 9.1 Система поиска
- **ПОИСК ПО**: Название, артикул, категория, бренд, описание
- **ПРАВИЛО**: Поиск должен быть регистронезависимым
- **ФУНКЦИЯ**: Автодополнение при вводе поискового запроса
### 9.2 Фильтрация и сортировка
- **ФИЛЬТРЫ**: По категории, типу товара, статусу активности, остаткам
- **СОРТИРОВКА**: По дате создания, названию, цене, остаткам
- **ПРАВИЛО**: Сохранение настроек фильтров для пользователя
## 10. 📱 ПРАВИЛА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
### 10.1 Отзывчивость интерфейса
- **ОБЯЗАТЕЛЬНО**: Интерфейс должен работать на всех устройствах
- **ПРАВИЛО**: Адаптивная сетка для карточек товаров
- **ФУНКЦИЯ**: Оптимизация для мобильных устройств
### 10.2 Обратная связь пользователю
- **ОБЯЗАТЕЛЬНО**: Уведомления об успешных/неуспешных операциях
- **ПРАВИЛО**: Индикаторы загрузки для длительных операций
- **ФУНКЦИЯ**: Подтверждение критических действий (удаление, деактивация)
## 11. 🚨 ПРАВИЛА ОБРАБОТКИ ОШИБОК
### 11.1 Обработка ошибок
- **ОБЯЗАТЕЛЬНО**: Логирование всех ошибок
- **ПРАВИЛО**: Понятные сообщения об ошибках для пользователя
- **ФУНКЦИЯ**: Автоматическое восстановление после сбоев
### 11.2 Резервное копирование
- **КРИТИЧЕСКИ ВАЖНО**: Регулярное резервное копирование данных товаров
- **ПРАВИЛО**: Версионность изменений для возможности отката
- **ФУНКЦИЯ**: Автоматическое восстановление связей при сбоях
## 12. 📈 ПРАВИЛА ПРОИЗВОДИТЕЛЬНОСТИ
### 12.1 Оптимизация загрузки
- **ПРАВИЛО**: Пагинация для больших списков товаров
- **ФУНКЦИЯ**: Ленивая загрузка изображений
- **ОПТИМИЗАЦИЯ**: Кэширование часто запрашиваемых данных
### 12.2 Масштабируемость
- **АРХИТЕКТУРА**: Модульная структура для легкого расширения
- **ПРАВИЛО**: Использование индексов для быстрого поиска
- **ФУНКЦИЯ**: Горизонтальное масштабирование при росте нагрузки
## 13. 🔐 ПРАВИЛА БЕЗОПАСНОСТИ ДАННЫХ
### 13.1 Защита данных
- **ОБЯЗАТЕЛЬНО**: Шифрование чувствительных данных
- **ПРАВИЛО**: Аудит всех действий пользователей
- **ФУНКЦИЯ**: Контроль доступа на уровне API
### 13.2 Соответствие требованиям
- **GDPR**: Право на удаление и экспорт данных
- **ПРАВИЛО**: Прозрачность обработки персональных данных
- **ФУНКЦИЯ**: Логирование согласий пользователей
## 14. 🎯 ПРАВИЛА КАЧЕСТВА КОДА
### 14.1 Стандарты разработки
- **ОБЯЗАТЕЛЬНО**: Покрытие тестами критической функциональности
- **ПРАВИЛО**: Следование принципам SOLID
- **ФУНКЦИЯ**: Автоматическое тестирование при развертывании
### 14.2 Документация
- **ОБЯЗАТЕЛЬНО**: Документирование всех API методов
- **ПРАВИЛО**: Комментарии к сложной бизнес-логике
- **ФУНКЦИЯ**: Автоматическая генерация документации
---
## 15. 📦 СПЕЦИАЛЬНЫЕ ПРАВИЛА ДЛЯ ТИПОВ ПРЕДМЕТОВ
### 15.1 Правила для ТОВАРА
- **СОЗДАНИЕ**: Базовый тип, создается поставщиком
- **СТАТУС**: Может быть активным/неактивным
- **ЗАКАЗ**: Доступен для заказа всеми типами организаций
- **ТРАНСФОРМАЦИЯ**: Может быть преобразован в ПРОДУКТ или БРАК
- **УЧЕТ**: Основная единица складского учета
- **ЦЕНА**: Обязательна, больше 0
### 15.2 Правила для БРАКА
- **СОЗДАНИЕ**: Только на основе существующего ТОВАРА
- **СВЯЗЬ**: Обязательная связь с родительским товаром (parentId)
- **СТАТУС**: Всегда неактивен для заказа
- **ЗАКАЗ**: ЗАПРЕЩЕН заказ брака
- **ОТОБРАЖЕНИЕ**: Виден только для учета потерь
- **СПИСАНИЕ**: Особый workflow списания и утилизации
- **СТАТИСТИКА**: Учитывается в потерях и браке
- **ЦЕНА**: Может быть 0 (списанный товар)
### 15.3 Правила для ПРОДУКТА
- **СОЗДАНИЕ**: Только на основе существующего ТОВАРА через процесс "Создания продукта"
- **СВЯЗЬ**: Обязательная связь с родительским товаром (parentId)
- **ОТЛИЧИЕ**: Товар = сырье, Продукт = готовая единица
- **СТАТУСЫ ЖИЗНЕННОГО ЦИКЛА**:
- Товар "на складе" → "в работе" → Продукт "готов к отправке"
- **РЕЦЕПТУРА**: Определяется селлером при создании поставки
- **СОСТАВ**: Товар + Услуга фулфилмента + Расходники (опционально)
- **АРТИКУЛЫ**: Наследует от товара + артикул MP (если связан)
- **ЗАКАЗ**: Доступен только в статусе "готов к отправке"
- **ПРОЦЕСС**: Обязательно проходит этап обработки на фулфилменте
- **УЧЕТ**: Отдельная статистика от базового товара
- **ЦЕНА**: Формируется из стоимости товара + услуг + расходников
- **СВЯЗЬ С MP**: Опциональная связь с карточкой маркетплейса
### 15.4 Правила для РАСХОДНИКОВ
- **СОЗДАНИЕ**: Поставщик создает карточки типа "РАСХОДНИКИ"
- **УНИВЕРСАЛЬНОСТЬ**: Один тип расходников для всех заказчиков
- **ПРИМЕРЫ**: Упаковочные материалы, этикетки, пленка, коробки, бирки, вкладыши
- **ДОСТУП**: Видны всем типам организаций в маркете
- **ЗАКАЗ**: Любая организация может заказать расходники
### 15.5 Классификация при заказе
**РАСХОДНИКИ → РАСХОДНИКИ ФУЛФИЛМЕНТА (при заказе фулфилмент-центром):**
- **НАЗНАЧЕНИЕ**: Для внутренних операций фулфилмент-центра и услуг селлерам
- **УЧЕТ**: В операционных расходах фулфилмента
- **WORKFLOW**: Поставщик → фулфилмент (прямая поставка)
- **ИСПОЛЬЗОВАНИЕ**: Для операций фулфилмента и услуг селлерам
**РАСХОДНИКИ → РАСХОДНИКИ СЕЛЛЕРОВ (при заказе селлером):**
- **НАЗНАЧЕНИЕ**: Для товаров и операций селлеров
- **УЧЕТ**: В расходах селлера
- **WORKFLOW**: Поставщик → фулфилмент → селлер
- **ПРИВЯЗКА**: Могут быть привязаны к конкретным товарам селлера
## 16. ⚠️ КРИТИЧЕСКИЕ ЗАПРЕТЫ
### 16.1 НИКОГДА НЕ ДЕЛАТЬ:
1. ❌ Удалять предметы с существующими заказами
2. ❌ Изменять статусы заказов без уведомлений
3. ❌ Обходить проверки остатков предметов
4. ❌ Давать доступ к чужим данным
5. ❌ Игнорировать ошибки валидации
6. ❌ Сохранять пароли в открытом виде
7. ❌ Пропускать логирование критических операций
8. ❌ Блокировать интерфейс без индикации загрузки
9. ❌ Создавать брак или продукт без связи с родительским товаром
10. ❌ Создавать отдельные типы расходников (только общий тип "РАСХОДНИКИ")
11. ❌ Разрешать заказ брака
12. ❌ Нарушать иерархию типов предметов
---
## 17. 🏢 ПРАВИЛА СИСТЕМЫ СКЛАДА ФУЛФИЛМЕНТА
### 17.1 Структура раздела склад фулфилмента
#### 17.1.1 Блок статистика склада
**ОБЯЗАТЕЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ МОДУЛЕЙ:**
1. **ПРОДУКТ** - готовые к продаже товары
2. **ТОВАР** - базовые товары от поставщиков
3. **БРАК** - товары с дефектами
4. **ВОЗВРАТЫ С ПВЗ** - возвращенные товары
5. **РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для селлеров
6. **РАСХОДНИКИ ФУЛФИЛМЕНТ** - операционные материалы
**ТРЕБОВАНИЯ К МОДУЛЯМ:**
- **ОБЯЗАТЕЛЬНО**: Каждый модуль отображает текущее наличие на складе
- **ПРАВИЛО**: Последовательность модулей не может быть изменена
- **СТАТУС**: Все модули отображают актуальные данные в реальном времени
#### 17.1.2 Система учёта движения товаров
**ОСНОВНЫЕ ПРИНЦИПЫ:**
- **ПРИХОД**: Товары поступают через принятые поставки (из состояния "в пути" → "на складе")
- **ОБРАБОТКА**: Товары переходят в статус "в работе" для создания продуктов
- **РАСХОД**: Товары убывают при отгрузке, списании, возврате, превращении в продукты
- **УЧЁТ**: Ведется учет прихода и расхода для каждого типа предметов
- **ВИЗУАЛИЗАЦИЯ**: Движение отображается в дополнительных значениях
**ДОПОЛНИТЕЛЬНЫЕ ЗНАЧЕНИЯ (показатели движения):**
- **ПРИБЫЛО**: Количество предметов, поступивших на склад
- **УБЫЛО**: Количество предметов, списанных со склада
- **ВЛИЯНИЕ**: От этих значений зависят основные значения (общее количество)
**ОСНОВНЫЕ ЗНАЧЕНИЯ (текущие остатки):**
- **ОПРЕДЕЛЕНИЕ**: Итоговое количество предметов на складе
- **РАСЧЁТ**: Основные значения = Предыдущие остатки + Прибыло - Убыло
- **ОТОБРАЖЕНИЕ**: Показываются в каждом модуле статистики
- **РАЗДЕЛЕНИЕ ТОВАРОВ**:
- Товары "на складе" - готовы к обработке
- Товары "в обработке" - находятся в процессе создания продукта
#### 17.1.3 Модуль "Расходники фулфилмента"
**ОСОБЕННОСТИ МОДУЛЯ:**
- **ИНТЕРАКТИВНОСТЬ**: Является кликабельным элементом
- **ФУНКЦИОНАЛЬНОСТЬ**: Содержит полноценный раздел учёта
- **ДОСТУП**: Переход к детальному управлению расходниками фулфилмента
- **СОДЕРЖАНИЕ**: Полный функционал работы с расходниками фулфилмента
#### 17.1.4 Блок детализация по Магазинам
**НАЗНАЧЕНИЕ**: Распределение товаров по торговым точкам/магазинам
**ФУНКЦИИ**:
- Отображение остатков по каждому магазину
- Управление распределением товаров
- Контроль движения между магазинами
### 17.2 Правила движения товаров в системе фулфилмента
#### 17.2.1 Поступление товаров
**ИСТОЧНИКИ ПОСТУПЛЕНИЯ:**
- **ПОСТАВКИ**: От поставщиков через систему заказов
- **ВОЗВРАТЫ**: Товары, возвращенные с ПВЗ
- **ПЕРЕМЕЩЕНИЯ**: Между складами и магазинами
**ПРОЦЕСС ПРИЁМКИ:**
1. Поставка переходит в статус "принято"
2. Товары из "в пути" → "на складе"
3. Обновляются основные значения
4. Фиксируется в дополнительных значениях как "прибыло"
#### 17.2.2 Расход товаров
**ПРИЧИНЫ РАСХОДА:**
- **ОТГРУЗКА**: Товары отправлены селлерам
- **СПИСАНИЕ**: Брак, утрата, утилизация
- **ВОЗВРАТ**: Возврат поставщику
- **ИСПОЛЬЗОВАНИЕ**: Расходники для операций
### 17.3 Процесс "Создания продукта"
#### 17.3.1 Workflow создания продукта
**ЭТАПЫ ПРОЦЕССА:**
1. **ПОСТУПЛЕНИЕ**: Товар приходит на склад фулфилмента (статус "на складе")
2. **СОРТИРОВКА**: Перебор товара, отсеивание брака
3. **ПОДГОТОВКА К РАБОТЕ**: Менеджер задает параметры работы
4. **ОБРАБОТКА**: Превращение товара в продукт по "рецептуре" селлера
5. **ЗАВЕРШЕНИЕ**: Готовый продукт (статус "готов к отправке")
#### 17.3.2 Управление процессом
**РАЗДЕЛ "СОЗДАНИЕ ПРОДУКТА":**
- **НОВЫЕ**: Поставки после нажатия "принято", ожидающие назначения
- **В РАБОТЕ**: Поставки в процессе обработки
- **ВЫПОЛНЕНО**: Завершенные поставки с готовыми продуктами
**ДЕЙСТВИЯ МЕНЕДЖЕРА В "НОВЫЕ":**
- **ДЕДЛАЙН**: Указание срока выполнения работы
- **ОТВЕТСТВЕННЫЙ**: Назначение исполнителя
- **МЕСТО ХРАНЕНИЯ**: Указание локации для готовых продуктов (опционально)
- **ЗАПУСК**: Нажатие кнопки "В работе"
#### 17.3.3 Рецептура продукта (задается селлером)
**СЕЛЛЕР УКАЗЫВАЕТ В ПОСТАВКЕ:**
- **БАЗОВЫЙ ТОВАР**: Исходный материал (например, футболка)
- **УСЛУГА ФУЛФИЛМЕНТА**: Из каталога услуг (например, "погладить")
- **РАСХОДНИК СЕЛЛЕРА**: Материалы селлера (например, фирменный пакет)
- **РАСХОДНИК ФУЛФИЛМЕНТА**: Материалы фулфилмента (например, короб + маркировка)
**РЕЗУЛЬТАТ**: ПРОДУКТ = Товар + Услуга + Расходники
#### 17.3.4 Учет план/факт в процессе работы
**ПЛАН**: Количество товара из поставки селлера
**ФАКТ**: Реальное количество после сортировки
**ФИКСАЦИЯ БРАКА:**
- **КОГДА**: В процессе работы (вкладка "В работе")
- **КТО**: Ответственный исполнитель
- **ДЕТАЛИЗАЦИЯ**: По каждому предмету (размер/объем)
- **ОБНОВЛЕНИЕ**: Можно вносить изменения до нажатия "Выполнено"
**ВЛИЯНИЕ НА СТАТИСТИКУ:**
- При принятии поставки: +План в статистику
- При выявлении факта: корректировка на реальные данные
- **ФОРМУЛА**: Факт = Брак + Хороший товар
- **ЛОГИКА**: Фактическое количество = сумма всех пересчитанных предметов
#### 17.3.5 Связь с маркетплейсами
**АРТИКУЛЫ ПРОДУКТА:**
- **ОСНОВНОЙ**: Наследует артикул исходного товара
- **ДОПОЛНИТЕЛЬНЫЙ**: Артикул карточки маркетплейса (если связан)
**СВЯЗЫВАНИЕ С MP:**
- **МОМЕНТ**: При создании поставки селлером
- **ПОЛЕ**: "Связать с карточкой маркетплейса" (опционально)
- **ИСТОЧНИК**: Карточки, полученные через API маркетплейсов
- **ПРАВИЛО**: Карточка товара селлера на MP = карточке продукта в системе
### 17.4 Валидация и контроль в складе фулфилмента
**ОБЯЗАТЕЛЬНЫЕ ПРОВЕРКИ:**
- **ОСТАТКИ**: Не могут быть отрицательными
- **ДВИЖЕНИЕ**: Каждое изменение должно быть зафиксировано
- **СИНХРОНИЗАЦИЯ**: Основные и дополнительные значения должны соответствовать
- **ДОСТУП**: Только авторизованный персонал фулфилмента
- **ПЛАН/ФАКТ**: Корректировка статистики при выявлении расхождений
---
## 18. 🎖️ ПРИОРИТЕТЫ РАЗРАБОТКИ
### 18.1 ВЫСОКИЙ ПРИОРИТЕТ:
1. 🔴 Безопасность и контроль доступа
2. 🔴 Целостность данных и валидация
3. 🔴 Корректность статусов поставок
4. 🔴 Уведомления участников процесса
5. 🔴 Правильная типизация предметов
6. 🔴 Связи между товарами и производными типами
### 18.2 СРЕДНИЙ ПРИОРИТЕТ:
1. 🟡 Производительность и оптимизация
2. 🟡 Пользовательский опыт
3. 🟡 Аналитика и отчетность
4. 🟡 Интеграции с внешними системами
5. 🟡 Workflow для брака и продуктов
6. 🟡 Разделение расходников по типам
### 18.3 НИЗКИЙ ПРИОРИТЕТ:
1. 🟢 Дополнительные фильтры
2. 🟢 Косметические улучшения
3. 🟢 Экспериментальные функции
4. 🟢 Расширенная кастомизация
---
## 19. 🏠 ПРАВИЛА КАБИНЕТА СЕЛЛЕРА / РАЗДЕЛ "МОИ ПОСТАВКИ"
### 19.1 Структура и навигация
#### 19.1.1 Основная структура
**ОБЯЗАТЕЛЬНАЯ СТРУКТУРА РАЗДЕЛА:**
- **ПОСТАВКИ НА ФУЛФИЛМЕНТ**:
- Товар → Карточки / Поставщики
- Расходники селлера
- **ПОСТАВКИ НА МАРКЕТПЛЕЙСЫ**:
- Wildberries
- Ozon
**НАВИГАЦИЯ**: Переключение через кнопки между основными разделами
#### 19.1.2 Различия подразделов товаров
**КАРТОЧКИ**:
- **ИСТОЧНИК**: WB API карточки селлера
- **ФУНКЦИИ**: Указание рецептуры + выбор логистики
- **РЕЗУЛЬТАТ**: WildberriesSupply
**ПОСТАВЩИКИ**:
- **ИСТОЧНИК**: Каталог товаров поставщиков
- **ФУНКЦИИ**: Заказ товаров + рецептура для продукта
- **РЕЗУЛЬТАТ**: SupplyOrder
### 19.2 Правила создания поставки расходников селлера
#### 19.2.1 Структура страницы
**БЛОК 1: ПОСТАВЩИКИ** _(обязательный)_
- **РАСПОЛОЖЕНИЕ**: Верхняя часть экрана
- **ИСТОЧНИК**: Только поставщики из раздела "Партнеры"
- **НАВИГАЦИЯ**: Горизонтальный скролл при превышении ширины
- **ВЫБОР**: Только один поставщик одновременно
- **ИНДИКАЦИЯ**: Визуальное выделение выбранной карточки
**БЛОК 2: РАСХОДНИКИ** _(зависимый)_
- **УСЛОВИЕ**: Активен только после выбора поставщика
- **СОДЕРЖАНИЕ**: Только расходники выбранного поставщика
- **ОБЯЗАТЕЛЬНЫЕ ЭЛЕМЕНТЫ**:
- Сортировка: цена, название, категория
- Фильтры: категория, ценовой диапазон
- **КАРТОЧКА РАСХОДНИКА**:
- Фото, название, цена, остаток, категория
- Количество в комплекте (если применимо)
- Поле ввода количества с валидацией
- Кнопки +/- для изменения по единице
**БЛОК 3: КОРЗИНА** _(справа)_
- **РАСПОЛОЖЕНИЕ**: Правая часть экрана
- **СОДЕРЖАНИЕ**:
- Счетчик видов расходников
- Детализация по каждому расходнику
- Общая сумма
- **УПРАВЛЕНИЕ**:
- Изменение количества (с валидацией остатков)
- Удаление позиций
- **ОБЯЗАТЕЛЬНЫЕ ПОЛЯ**:
- Выбор фулфилмент-центра (из партнеров)
- Дата поставки (не прошедшая, по умолчанию - текущая)
#### 19.2.2 Валидация и ограничения
**КОЛИЧЕСТВО ТОВАРОВ**:
- **МИНИМУМ**: 1 единица/комплект
- **МАКСИМУМ**: Остаток у поставщика
- **ПРОВЕРКА**: В реальном времени при изменении
**ДАТА ПОСТАВКИ**:
- **ЗАПРЕТ**: Выбор прошедших дат
- **ПО УМОЛЧАНИЮ**: Дата создания поставки
**ОБЯЗАТЕЛЬНЫЕ ПОЛЯ**:
- Выбор поставщика
- Минимум один расходник в корзине
- Выбор фулфилмент-центра
- Дата поставки
### 19.3 Отображение и управление поставками
#### 19.3.1 Многоуровневая таблица
**ПЕРВЫЙ УРОВЕНЬ** _(основной список)_:
- **СОРТИРОВКА**: Номер поставки от большего к меньшему
- **ОБЯЗАТЕЛЬНЫЕ КОЛОНКИ**:
- Порядковый номер поставки
- Количество видов расходников
- Стоимость всей поставки
- Количество категорий
- Статус поставки
**ВТОРОЙ УРОВЕНЬ** _(детализация)_:
- **АКТИВАЦИЯ**: По клику на строку первого уровня
- **СОДЕРЖАНИЕ**:
- Название расходника
- Количество
- Цена
- Категория
- Поставщик
- **ОГРАНИЧЕНИЯ**: Только просмотр, редактирование запрещено
#### 19.3.2 Статусы поставок
**ЖИЗНЕННЫЙ ЦИКЛ СТАТУСОВ**:
1. **В работе** - создана селлером
2. **Одобрена** - подтверждена поставщиком
3. **Ожидает отгрузки** - логистика назначена
4. **В пути** - товар отгружен
5. **Доставлена/Принято** - получена фулфилментом
### 19.4 Workflow и бизнес-логика
#### 19.4.1 Участники процесса
**СЕЛЛЕР**:
- Создает поставку
- Отслеживает статусы
- Получает уведомления об изменениях
**ПОСТАВЩИК**:
- Получает уведомление о заказе
- Вносит данные о грузовых местах и объеме
- Подтверждает поставку
- Отмечает отгрузку
**ФУЛФИЛМЕНТ**:
- Назначает ответственного
- Выбирает логистику
- Принимает товар
- Указывает место хранения
**ЛОГИСТИКА**:
- Получает заявку
- Подтверждает возможность доставки
- Осуществляет транспортировку
#### 19.4.2 Уведомления
**ОБЯЗАТЕЛЬНЫЕ УВЕДОМЛЕНИЯ**:
- Поставщику: о новом заказе расходников
- Фулфилменту: о подтвержденной поставке
- Логистике: о назначении на заявку
- Селлеру: об изменении каждого статуса
### 19.5 Ограничения и запреты
**ЗАПРЕЩЕНО**:
- Редактирование созданной поставки
- Выбор нескольких поставщиков одновременно
- Заказ количества сверх остатков
- Выбор прошедших дат поставки
- Создание поставки без выбора фулфилмент-центра
**ОБЯЗАТЕЛЬНО**:
- Валидация остатков перед добавлением в корзину
- Проверка доступности фулфилмент-центра
- Отправка уведомлений на каждом этапе
- Логирование всех изменений статусов
---
_Эти правила являются обязательными для всех участников разработки и должны соблюдаться на всех этапах жизненного цикла системы._
_Версия: 1.0_
ата создания: 2024_
_Статус: АКТИВНЫЕ ПРАВИЛА_