В CRMservice статусы заказов настраиваются под бизнес: вы создаёте свои названия и цвета, плюс правила кто и в какой статус может переводить заказ. Это защищает от случайных или преждевременных переходов.
Три уровня правил
| Правило | Что делает |
|---|---|
| is_final | Из финального статуса нельзя выйти, кроме перехода в is_cancel (откат) |
| required_role_ids | Чтобы перевести заказ в этот статус, у юзера должна быть одна из перечисленных ролей |
| allowed_next_ids | Из текущего статуса можно перейти только в один из перечисленных следующих |
Все три правила опциональные — можно использовать ни одного, одно, два или все три.
Создать статус
В Настройки → Заказы → Статусы:
- Добавить новый.
- Имя, цвет, иконка.
- is_final? — финальный (например «Завершён», «Отменён»).
- is_cancel? — это статус отмены (с него можно откатить даже из финального).
Правила переходов
a) Кто может переводить (required_role_ids)
Например, статус «Выдан клиенту» требует роль Кассир или Менеджер:
- В Настройки → Заказы → Статусы → «Выдан клиенту» → Кто может перевести выбираете нужные роли.
- Если юзер с другой ролью попробует — кнопка перевода серая (или 403 от API).
b) Из какого в какой (allowed_next_ids)
Например, из «Новый» можно идти только в «В работе» или «Отменён» (не сразу в «Выдан»):
- В статусе «Новый» → Следующие шаги выбираете «В работе» и «Отменён».
- Все другие переходы из «Новый» заблокированы.
c) Финальные статусы
Из «Завершён» (если is_final=true) нельзя перейти никуда, кроме «Отменён» (если у того is_cancel=true). Это защищает от случайной переоткрытия закрытых заказов.
Системные статусы
Семь базовых статусов (is_system=true) приходят по дефолту: Новый, В работе, Готов, Выдан, Завершён, Отменён, На доработке. Их нельзя удалить (защита от обнуления процесса), но можно переименовать и поменять правила.
Триггеры при переходе
В поле triggers (JSON) можно настроить автоматические действия при попадании в статус:
- Отправка SMS клиенту.
- Уведомление руководителю.
- Создание связанной задачи.
Подробнее — в Автоматизации (когда они появятся; сейчас триггеры частично работают через notification_rules).
Возможные проблемы
- «Не могу перевести» — нет роли в
required_role_idsили текущий статус не разрешает в нужный (allowed_next_ids). Откройте настройки статуса и проверьте. - «Случайно сделал is_final» — снимите флажок. Закрытые заказы при этом не разблокируются — они уже зафиксированы.
- «Юзер обходит правила через API» — API тоже проверяет
required_role_ids. Защита на бэкенде.