Skip to content

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