﻿---
title: Управление заказами
description: "Рабочее место на Laravel + Filament для координаторов заказов: единый статус, сроки обработки, ответственные и передача между складом, доставкой и поддержкой."
---

## Что это за сервис

Внутренний инструмент для координаторов, которые ведут заказ от оформления до отгрузки и закрытия: интернет-магазин, дистрибьютор, производство под заказ. Склад собирает, логистика отгружает, поддержка отвечает клиенту, а руководитель видит весь поток и узкие места.

Без такого сервиса статус заказа хранится в учётной системе, таблице и почте, и к обеду они расходятся. Планёрка уходит на выяснение, какие заказы действительно отгружены и кто за что отвечает. Зависшие заказы замечают только на следующей смене, при передаче между складом, доставкой и поддержкой не остаётся ни времени, ни ответственного, а отчёт по исполнению каждый понедельник собирают заново.

## Что он делает

- **Держит один статус заказа.** Все координаторы видят одни и те же данные из одного источника, без ручной сверки.
- **Следит за возрастом заказа.** Заказы, которые приближаются к нормативу обработки, помечаются заранее, а не после жалобы клиента.
- **Распределяет заказы.** Правила по региону, категории или каналу продаж назначают ответственного, а неназначенные заказы выделяются отдельно.
- **Фиксирует передачи между командами.** Переход «склад → доставка → поддержка» записывается со временем и исполнителем и виден в истории заказа.
- **Проверяет переходы.** Нельзя перевести заказ в «Отгружен» без трек-номера или закрыть его без подтверждения доставки.
- **Даёт живые отчёты.** Сохранённые представления по дате, статусу и ответственному заменяют еженедельную выгрузку.

## Нюансы и особенности

- **Система учёта заказов уже есть.** Заказы обычно живут в CMS интернет-магазина, маркетплейсах, 1С или МойСклад, и для небольшого потока их интерфейса хватает. Приложение на Filament оправдано, когда каналов несколько, процесс нестандартный или нужна единая очередь поверх разных систем. Данные забирают через API и синхронизацию, источник остаётся главным.
- **Единый справочник статусов.** Статусы всех каналов приводят к одному набору через таблицу соответствий, которая обновляется при каждой синхронизации. Неизвестный статус не угадывают, а показывают как ошибку сопоставления.
- **Норматив зависит от типа заказа.** Срок обработки задают по типу, приоритету или каналу; предупреждение приходит, например, при 75% норматива, а не в момент нарушения.
- **Неназначенный заказ — отдельная очередь.** Заказы без ответственного дольше пары часов выделяют и эскалируют руководителю смены.
- **Разные линии — разные процессы.** Для товаров под заказ, предзаказа и обычной отгрузки допустимы свои наборы статусов и правил, но в одной панели с отдельными представлениями.
- **Доступ по ролям на сервере.** Склад видит листы сборки и позиции, координаторы — статусы, руководитель — весь поток с показателями. Ограничение действует в таблицах, виджетах и выгрузках.
- **Правки двух систем.** Если координатор меняет статус в приложении, изменение должно уйти обратно в источник или быть запрещено. Иначе две системы снова разойдутся. Направление записи для каждого поля определяют до начала разработки: что приложение только читает, а что имеет право менять.
- **Начинать с исключений.** Первый полезный срез — не полная копия заказа, а очередь проблем: зависшие, неназначенные и просроченные заказы. Остальное добавляют, когда команда начнёт работать в приложении каждый день.

## Как сгенерировать через ИИ-агентов

Промпты рассчитаны на AI-агента (Claude Code, Cursor и аналоги) в Laravel-проекте с установленным **Filament 4.x**. Отправляйте их по одному: каждый шаг даёт результат, который можно проверить до перехода к следующему.

### 1. Данные и модели

```text
Создай модели и миграции для управления заказами: Order (внешний id,
канал продаж, клиент, сумма, тип, приоритет, единый статус, норматив
обработки, ответственный, трек-номер, время синхронизации), OrderItem
(заказ, товар, количество, собрано), OrderEvent (заказ, из статуса,
в статус, команда, пользователь, время, комментарий), StatusMapping
(канал, внешний статус, единый статус). Добавь фабрики с демо-данными
для двух каналов продаж.
```

### 2. Очередь заказов

```text
Сгенерируй Filament-ресурс для Order. В таблице покажи возраст заказа,
долю израсходованного норматива, канал и ответственного. Добавь вкладки
«Не назначены», «Под угрозой», «Нарушен норматив», «Отгружены сегодня»
и фильтры по каналу, типу, региону и ответственному.
```

### 3. Переходы и история

```text
Добавь действия смены статуса с правилами: перевод в «Отгружен» требует
трек-номер, закрытие — подтверждение доставки. Каждый переход записывай
в OrderEvent. В карточке заказа покажи позиции и ленту событий через
relation managers.
```

Попробуйте отгрузить заказ без трек-номера: действие должно отказать с понятным сообщением.

### 4. Синхронизация и назначение

```text
Сделай фоновую задачу, которая загружает заказы из API каналов продаж,
сопоставляет статусы через StatusMapping, не создаёт дублей и пишет
ошибки сопоставления в отдельный список. Добавь правила автоназначения
по региону и категории из конфига и уведомление руководителю смены
о заказах без ответственного дольше двух часов.
```

### 5. Роли и отчёты

```text
Настрой роли: кладовщик видит позиции и листы сборки, координатор —
заказы своего региона, руководитель — всё. Добавь виджеты заказов
по статусам, нарушений норматива по дням и экспорт исполнения
за период.
```

## Похожие сценарии

- [Дашборд складских остатков](https://wpcraft.ru/kb/stacks/filament/use-cases/operations/inventory-dashboard.md) — хватит ли товара, чтобы собрать заказы.
- [Мониторинг задержек доставки](https://wpcraft.ru/kb/stacks/filament/use-cases/operations/logistics-delay-monitor.md) — что происходит с заказом после передачи перевозчику.
- [Учёт возвратов](https://wpcraft.ru/kb/stacks/filament/use-cases/operations/returns-operations-tracker.md) — обратный путь товара после отгрузки.

## Материалы и источники

- [Refine: Order Management](https://refine.dev/use-cases/operations/order-management/)
- [Filament 4.x: ресурсы](https://filamentphp.com/docs/4.x/resources/overview)
- [Filament 4.x: фильтры таблиц](https://filamentphp.com/docs/4.x/tables/filters/overview)
- [Filament 4.x: виджеты](https://filamentphp.com/docs/4.x/widgets/overview)
- [Filament 4.x: экспорт](https://filamentphp.com/docs/4.x/actions/export)