Missing Order Notify
Description
排程-訂單漏單通知。每分鐘偵測逾時未處理的網路訂單(漏單),並透過 Microsoft Teams Webhook 通知相關人員盡速處理。
漏單判定條件(同時成立):
- EC 訂單流程:屬於指定電商/網頁通路、狀態為指定未完成狀態,且已成立付款
- 掃碼付款流程:屬於指定掃碼/網頁通路、狀態為指定未完成狀態,且已產生發票號碼
- KIOSK 標準流程:屬於自助點餐機通路、狀態為指定未完成狀態,且已產生發票號碼
- 共同條件:已超過取餐時間(逾期未同步),且該訂單所屬門市與站台皆已開啟「自動補傳」
本次撈出的所有漏單會彙整為一則通知(不逐筆發送),內容以表格方式呈現並依「公司+分店」分段(分段標題含公司名稱/統編與分店名稱/編號),每列包含:訂單編號、訂餐時間、取餐時間、訂單狀態、訂單來源;訊息開頭並含系統通知時間與漏單筆數。
Resource
POST /v1/schedule/order/missing_order_notify
Authorization
內部排程觸發,無需 Token 驗證(ignore_token=True)。
Request
{}
Response Success Example
Status-Code: 204 No Content
sequenceDiagram
participant Scheduler as 排程觸發器
participant Omni as 全通路平台
participant DB as 資料庫
participant Teams as Microsoft Teams
Scheduler->>Omni: [POST] /v1/schedule/order/missing_order_notify
activate Omni
Omni->>DB: 查詢已過取餐時間、未同步且已開啟自動補傳之漏單訂單
activate DB
DB-->>Omni: 回傳漏單訂單 (含公司名稱、門市名稱、取餐時間)
deactivate DB
alt 查無漏單訂單
Omni-->>Scheduler: 回應 204 (無漏單訂單)
end
loop 針對每筆漏單訂單
Omni->>Teams: send_webhook_message_to_teams_by_params(訂單漏單通知!!)
activate Teams
alt 發送失敗
Teams-->>Omni: 例外
Omni->>Omni: 記錄錯誤 log 並繼續下一筆
else 發送成功
Teams-->>Omni: 通知已送出
end
deactivate Teams
end
Omni-->>Scheduler: 回應 204 (成功)
deactivate Omni