
Статусы заказа
Откройте Пакеты → MiniShop3 → Настройки → Статусы заказа.
Назначение
Статус описывает, на каком этапе находится заказ. От него зависят три вещи: какие переходы разрешены дальше, рассылается ли уведомление покупателю и менеджерам и что происходит со складским резервом.
В поставке пять статусов:
| Id | Название | Роль |
|---|---|---|
| 1 | Черновик | Корзина и форма оформления. Заказ ещё не отправлен |
| 2 | Новый | Заказ оформлен. На этом статусе резервируется остаток |
| 3 | Оплачен | Резерв списывается в расход |
| 4 | Отправлен | Промежуточный статус доставки |
| 5 | Отменён | Резерв возвращается на склад |
Id первых пяти статусов зашиты в системные настройки ms3_status_* — их читает код оплаты, отгрузки и складского учёта. Переименовать статус можно, а менять его id не стоит.
Поля статуса
| Поле | Тип | Описание |
|---|---|---|
name | string | Название. Обязательное поле |
description | text | Описание для менеджера |
color | string | Цвет метки в гридах, hex без решётки (000000 по умолчанию) |
active | bool | Статус доступен для выбора |
final | bool | Из этого статуса переходов нет: попытка сменить его даёт ошибку ms3_err_status_final |
fixed | bool | Запрещает откат назад: переход в статус с меньшей или равной position отклоняется с ms3_err_status_fixed |
position | int | Порядок сортировки. Участвует в проверке fixed |
editable | bool | Принимается Manager API и хранится в базе, но логикой заказа сейчас не используется. Его читает только устаревший процессор Settings\Status\Remove |
Интерфейс
Таблица показывает: перетаскивание, флажок выбора, Id, Имя, Итоговый (final), Фиксирует (fixed), Включен (active) и колонку действий.
- Создание. Кнопка Создать открывает диалог с полями:
Имя(обязательное),Цвет,Описание,Включен,Итоговый,Фиксирует. Поляpositionв диалоге нет — порядок задаётся перетаскиванием. - Редактирование. По иконке карандаша в колонке действий.
- Сортировка. Перетаскиванием. Порядок важен не только для вида: по нему работает проверка
fixed. - Удаление. Статус, который используют заказы, удалить нельзя — сервер считает заказы с этим
status_idи отвечает ошибкой с их числом.
Поиска на вкладке нет.
Переходы между статусами
Кроме флагов final и fixed переходы ограничивает системная настройка ms3_order_status_transitions. Она задаёт разрешённые рёбра графа; пустое значение означает «любой переход, кроме запрещённых флагами». Значение, которое не удалось разобрать, отклоняет смену статуса с ms3_err_status_transitions_invalid.
Смену статуса выполняет OrderStatusService — см. Управление статусами и События статуса.
Manager API
Вся группа закрыта правом mssetting_save.
| Метод | Роут | Описание |
|---|---|---|
GET | /api/mgr/statuses | Список |
POST | /api/mgr/statuses | Создать |
GET | /api/mgr/statuses/{id} | Карточка |
PUT | /api/mgr/statuses/{id} | Обновить |
DELETE | /api/mgr/statuses/{id} | Удалить |
DELETE | /api/mgr/statuses/bulk | Удалить несколько, список ids в теле |
POST | /api/mgr/statuses/sort | Сохранить порядок после перетаскивания |
Запись принимает только поля name, description, color, active, final, fixed, editable; остальное из тела запроса отбрасывается.
Отдельно от группы лежит GET /api/mgr/statuses-dropdown — список с переводами для выпадающих списков в формах заказа.
