Order Return
Description
訂單退貨。
Resource
PATCH /v1/order/return
Authorization
採用 OAuth 2.0 Bearer Token,詳細使用流程請參考 Auth Login。
Request Body Parameters
| Name | Type | Description |
|---|---|---|
| id | string | 訂單編號 |
| store_id | string | 門市編號 |
| external_data | string | 訂單外部資訊 (optional) |
Response
Status-Code: 204 No Content
Order Return API Workflow
sequenceDiagram
%%{init: {'securityLevel': 'loose', 'theme': 'base'}}%%
autonumber
participant C as Client
participant OP as OmniPlatform
participant R as repository
C ->> OP: Request [PATCH] /v1/order/return
OP ->> OP: Call self.check_params_process(params)
alt 請求參數缺少必填欄位
OP ->> C: Return(400, f"{column} 不可為空")
end
OP ->> OP: auth_data = get_auth_info(bearer)
OP ->> OP: company_id = get_company_id(auth_data)
OP ->> OP: order00_df = self.get_order00()
OP ->> OP: allow_order_status = ['2', '4', '7', 'D']
alt order00_df['status'] not in allow_order_status
OP ->> C: Return Response(400, {'message': '訂單狀態錯誤,無法進行退貨'})
end
Note over OP: 更新全通路 order00 的 status = 9、external_data(如果前端有傳值)
OP ->> R: Call update_order00(params, order00_df)
Note over OP: 呼叫接單程式API通知POS進行退貨
OP ->> OP: status_code, response_data = sync_order_refund(order00_df)
alt status_code != 200 and response_data.get('code', '') != '0'
loop retry 3 次,每次間隔 3 秒
OP ->> OP: status_code, response_data = sync_order_refund(order00_df)
end
end
OP ->> C: Return Response(204)