Статусы заказов

OrderStatus

Статус Label Описание
PENDING Ожидает оплаты Клиент оформил, но не оплатил
PAID Оплачен Оплата прошла, обработка не началась
PROCESSING В обработке Есть позиции в работе (ретушь, печать)
READY Готов Все позиции готовы к выдаче
COMPLETED Выдан Все позиции выданы клиенту
CANCELLED Отменён Отменён (неоплачен > 24ч или вручную)
REFUNDED Возврат Сделан возврат средств

Транзиции

PENDING ──► PAID ──► PROCESSING ──► READY ──► COMPLETED
    │           │           │           │
    │           └───────────┴───────────┴──► REFUNDED
    │
    └──► CANCELLED (авто через 24ч или вручную)

Визуальные индикаторы

Статус Цвет Иконка
PENDING 🟡 warning fa-clock
PAID 🔵 info fa-check
PROCESSING 🔵 primary fa-cog
READY 🟢 success fa-box
COMPLETED 🟢 success fa-check-double
CANCELLED 🔴 danger fa-times
REFUNDED 🔴 danger fa-undo

Методы

Метод Описание
isPaid() true для PAID, PROCESSING, READY, COMPLETED
isFinal() true для COMPLETED, CANCELLED, REFUNDED
canTransitionTo($status) Проверка допустимости перехода
progress() Процент прогресса (0-100)

Прогресс-бар

Прогресс-бар показывается только для оплаченных заказов (isPaid() === true).

Шаги:

  1. Оплачен
  2. Обработка
  3. Готов
  4. Выдан

OrderItemStatus

Статус Label Описание
PENDING Ожидает Ждёт начала обработки
PROCESSING В обработке На ретуши
PRINTING На печати Отправлено в типографию
READY Готов Готов к выдаче
DELIVERED Выдан Передан клиенту

Транзиции

PENDING ──► PROCESSING ──► READY ──► DELIVERED
    │              │
    │              └──► PRINTING ──► READY ──► DELIVERED
    │
    └──► READY (digital без ретуши)

Визуальные индикаторы

Статус Цвет Иконка
PENDING ⚪ secondary fa-clock
PROCESSING 🔵 primary fa-cog
PRINTING 🔵 info fa-print
READY 🟢 success fa-check
DELIVERED 🟢 success fa-check-double

Методы

Метод Описание
isFinal() true для DELIVERED
canTransitionTo($status) Проверка допустимости перехода

Связь OrderStatus и OrderItemStatus

OrderStatus автоматически пересчитывается на основе статусов позиций:

Условие OrderStatus
Все DELIVERED COMPLETED
Все READY READY
Есть PROCESSING или PRINTING PROCESSING
Иначе Текущий статус

UI рекомендации

Для PENDING

  • Показывать alert "Ожидает оплаты"
  • Скрыть прогресс-бар
  • Показать кнопку "Отправить ссылку на оплату" (опционально)

Для PROCESSING

  • Показывать прогресс: "X из Y позиций готовы"
  • Показывать какие позиции готовы, какие в работе
  • Активировать кнопки скачивания для готовых цифровых

Для COMPLETED/CANCELLED/REFUNDED

  • Показывать информацию о завершении
  • Для COMPLETED: дата выдачи
  • Для CANCELLED: причина отмены
  • Для REFUNDED: сумма и дата возврата

Возврат средств

Процесс возврата

  1. Фотограф нажимает кнопку "Возврат средств" в dashboard
  2. Модальное окно показывает предупреждение:
    • Возврат не будет выполнен автоматически
    • Нужно выполнить возврат вручную через ЮKassa
    • Комиссия платформы (7%) не возвращается
  3. Фотограф подтверждает возврат
  4. Статус заказа меняется на REFUNDED
  5. Фотограф выполняет возврат вручную через личный кабинет ЮKassa

Комиссия платформы

⚠️ Важно: При возврате средств комиссия платформы (7%) не возвращается.

Пример:

  • Клиент оплатил заказ: 1000 ₽
  • Комиссия платформы: 70 ₽ (7%)
  • К возврату клиенту: 930 ₽ (1000 - 70)

Фотограф должен вернуть клиенту 930 ₽, а не 1000 ₽.

UI для возврата

В dashboard показывается модальное окно с информацией:

  • Заказ будет отмечен как возвращённый
  • Возврат нужно выполнить вручную через ЮKassa
  • Комиссия платформы (7%) не возвращается
  • Клиент получит уведомление о возврате

Доступность

Кнопка "Возврат средств" доступна для статусов:

  • PAID — оплачен, но обработка не началась
  • PROCESSING — в обработке
  • READY — готов, но не выдан