Метод cancelOrder. Отменить заказ
Метод проверяет статус заказа, после чего переводит его в состояние «Отменен», отправляет в СМ уведомление order.cancelled с указанием причины, создаёт телеграмм-уведомление для сборщика и магазина об отмене заказа. Возвращает обновлённое содержание заказа, включая строки (order.positions).
Алгоритм:
- открывает транзакцию,
- находит заказ по идентификатору подразделения и заказа, читает его с блокировкой (for update),
- проверяет текущий статус заказа
- отправляет уведомление order.cancelled в СМ с указанием причины отмены,
- изменяет в заказе статус на «Отменен», записывает дату-время отмены заказа
- если любой из перечисленных выше шагов завершился с ошибкой, то выполняет откат транзакции
- фиксирует транзакцию
- записывает в очередь телеграмм-уведомлений сообщения «Отменен заказ NN, сборщик ХХ, причина …» для сборщика и магазина,
- возвращает обновлённое содержание заказа
Параметры
requestData : {
storeId : <Идентификатор магазина СМ, обязательный, string>,
orderId : <Идентификатор заказа СМ, обязательный, string>
cancelReason : <Причина отмены, string>
}
Возвращаемый ответ
responseData : {
order : {
<Заказ в виде объекта типа order, включая строки (order.positions)>
}
}
Нет комментариев