Skip to content
  1. Компоненты
  2. MiniShop3
  3. Интерфейс админки
  4. Настройки
  5. Статусы заказа

Статусы заказа ​

Откройте Пакеты → MiniShop3 → Настройки → Статусы заказа.

Назначение ​

Статус описывает, на каком этапе находится заказ. От него зависят три вещи: какие переходы разрешены дальше, рассылается ли уведомление покупателю и менеджерам и что происходит со складским резервом.

В поставке пять статусов:

IdНазваниеРоль
1ЧерновикКорзина и форма оформления. Заказ ещё не отправлен
2НовыйЗаказ оформлен. На этом статусе резервируется остаток
3ОплаченРезерв списывается в расход
4ОтправленПромежуточный статус доставки
5ОтменёнРезерв возвращается на склад

Id первых пяти статусов зашиты в системные настройки ms3_status_* — их читает код оплаты, отгрузки и складского учёта. Переименовать статус можно, а менять его id не стоит.

Поля статуса ​

ПолеТипОписание
namestringНазвание. Обязательное поле
descriptiontextОписание для менеджера
colorstringЦвет метки в гридах, hex без решётки (000000 по умолчанию)
activeboolСтатус доступен для выбора
finalboolИз этого статуса переходов нет: попытка сменить его даёт ошибку ms3_err_status_final
fixedboolЗапрещает откат назад: переход в статус с меньшей или равной position отклоняется с ms3_err_status_fixed
positionintПорядок сортировки. Участвует в проверке fixed
editableboolПринимается 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 — список с переводами для выпадающих списков в формах заказа.