Заказы в Magento: Состояния и Статусы

Эта памятка для тех, кто настраивает процесс обработки заказов в Magento. Писалось под Magento 1.х, но в Magento 2.x существенно ничего не изменилось.

Когда дело доходит до настройки процесса обработки заказов, то зачастую происходит путаница между понятиями "Состояние" и "Статус", в связи со схожестью их названий. На деле же — это два разных термина, имеющих свое назначение и специфику. Трудности доставляет и непонимание того, что на состояния повлиять достаточно сложно.

Состояние заказа (Order State)

Состояние заказа — это составляющее бизнес-процесса, заложенное глубоко в ядре Magento и связанное с работой множества его функционала.

Картинка 1. Стандартный процесс обработки по состояниям заказа[1]

Вот список стандартных состояний, которые имеются в Magento и краткое пояснение того, как их понимает Magento (для отчётов/бухгалтерии):

  • New (Новый) — заказ создан и с ним пока ничего не делали
  • Complete (Завершён) — деньги получены (создан Invoice), товар передан на доставку (создан Shipment). С заказом больше ничего делать не планируется.
  • Closed (Закрыт) — на этом заказе ничего не заработали (деньги/товары вернули), но было движение документов:
    Создан счёт (Invoice), создан возврат (Credit Memo) на всю сумму. С заказом больше ничего делать не планируется
  • Canceled (Отменён) — Заказ отменён, никакие документы не проводились
  • Processing (Обрабатывается) — назначается автоматически при выставлении счёта (Invoice) или доставки (Shipment), независимо от порядка выставления
  • Pending Payment (В ожидании оплаты) — данное состояние используется некоторыми платёжными методами. Выставляется автоматически новому заказу при перенаправлении клиента на платёжный шлюз
  • Payment Review (Проверка оплаты) — подозрительная транзакция. Требует подтверждения со стороны платёжного шлюза
  • On Hold (Отложен) — заказ отложен, вне зависимости от того, приводились документы или нет

В рамках стандартного функционала системы, изменять/добавлять состояния нельзя. Но, даже в случае добавления нового состояния через сторонний модуль и его назначения заказу, стоит помнить, что в большинстве случаев стандартный функционал Magento устанавливает состояния автоматически и изменит состояние заказа при выполнении стандартных действий.

Пример: При создании счёта (Invoice) состояние заказа в большинстве случаев будет изменено на Processing (Обрабатывается).

Статус заказа (Order Status)

К каждому из вышеперечисленных состояний заказа можно назначить "подсостояние" — статус. Цель статуса подробнее описать, что происходит с заказом на данный момент.

Основные отличия статусов от состояний в том, что:

  • У состояния может быть сколько угодно статусов
  • Статус может быть у нескольких состояний

Так, например, состояние "Pending Payment" (В ожидании оплаты) может иметь статусы:

  • Pending Payment Paypal
  • Pending Payment Store Credit
  • Pending Payment Card
  • И многое другое

В отличии от состояний заказа, произвольные статусы можно добавлять вручную или присваивать их к состояниям через панель администрирования (раздел "Система" -> "Статусы заказов").

Выводы

1. Для глобальных бизнес процессов фирмы важно состояние заказа
2. Для обработки заказов (что происходит с заказом и что делать дальше) и для оповещения клиентов важны статусы заказа

Картинка 2. Пример процесса обработки заказа через статусы

Дата последнего обновления: вторник, 19 декабря 2017 г.