Обработка события order.paid (оплата заказа)
Уведомление может быть обработано при состоянии заказа «Собран» или «Передан курьеру». В остальных статусах это уведомление игнорируется. В уведомлении передается итоговая информации о ценах и суммах по позициям заказа - с учетом изменений по количеству и ассортименту, которые были сделаны в процессе сборки. В результате обработки уведомления в заказе устанавливается признак «Оплачен».
Алгоритм обработки:
- открыть транзакцию
- найти документ заказа по идентификатору заказа СМ, заблокировать его от изменений
- если документ заказа с таким номером не найден, завершить обработку с кодом 404
- проверить статус заказа, если статус заказа не равен «Собран» или «Передан курьеру», то завершить обработку с кодом 200
- записать в строки заказа итоговые цены и суммы из payload.positions, установить в шапке признак «Оплачен»,
- если любой из перечисленных выше шагов внутри транзакции завершился с ошибкой, то выполнить откат транзакции
- фиксировать транзакцию
- вернуть СМ код завершения
Нет комментариев