РЕШЕНИЕ СТУДИИ

Обработка заказов.

Сбой проходит.
Заказ остаётся.

Заказ уже пришёл с сайта, а учётная система временно недоступна. Что увидит сотрудник и что произойдёт при повторной отправке? В этом примере этот путь можно пройти самому, включая сбой и восстановление.

СЦЕНАРИЙ ПРИМЕНЕНИЯ
Интернет-магазины
СТАТУС
Разработанный интерфейс и сценарий
ФОРМАТ
Собственная разработка · открытый пример
Обработка заказов — Управление заказами. Сценарий: Интернет-магазины
Обработка заказов / Управление заказами
СИТУАЦИЯ И ЗАМЫСЕЛ

Вторая попытка не должна создавать второй заказ.

Покупатель нажал «Оформить». На сайте заказ есть, а в учётной системе его пока нет: соединение прервалось в самый неудобный момент. Сотрудник повторяет отправку. Затем исходное уведомление приходит ещё раз. Покупатель по-прежнему ждёт одну посылку. Система уже получила несколько сигналов. Для интернет-магазина это не редкая инженерная загадка, а задача, у которой должен быть понятный рабочий ответ.

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

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

ПРОВЕРЬТЕ САМИ

Откройте сценарий.
Посмотрите на результат.

Обработка заказовИНТЕРАКТИВНЫЙ ПРИМЕР

Учебная очередь работает в браузере. Реальная учётная система не подключена; состояние сбрасывается при перезагрузке.

Как устроена демонстрация

  1. Принять заказ и повторить то же событие: запись останется одна.
  2. Выключить учебную связь и попробовать обработку.
  3. Восстановить связь и завершить тот же заказ без создания дубля.

Для интерактивного примера нужен JavaScript. История и проектные решения доступны ниже.

ПРОЕКТНЫЕ РЕШЕНИЯ

Детали, на которых
держится сценарий.

01

Различать событие и попытку

Заказ WEB-1042 сохраняет один идентификатор при повторных нажатиях. Счётчик попыток относится к обработке этой записи. Поэтому сбой не превращает одну задачу в несколько независимых заказов.

02

Сохранять понятное промежуточное состояние

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

03

Показывать историю действий

Журнал объясняет результат каждой команды. Отдельно показаны число принятых заказов и число подтверждённых записей. Эти показатели относятся только к текущей учебной сессии.

ЧТО РЕАЛИЗОВАНО

Результат,
который можно проверить.

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

ПУТЬ К ВНЕДРЕНИЮ

Следующий шаг —
ваш рабочий процесс.

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

Обсудить похожую задачу
НАЧНЁМ С ВАШЕЙ ЗАДАЧИ

Обсудим задачу.
Найдём решение.

Расскажите, что хотите изменить или создать. Предложим формат работы и оценим первый этап. Готовое техническое задание не требуется.

Для новых клиентов — 5% на первый проект.

Больше Нуля

Прямой диалог со студией

01 / ЗНАКОМСТВО

Начнём со знакомства.

Как к вам обращаться и куда связаться по вашей задаче?

Можно указать номер любой страны.