# Pos 訂單相關 API
## 文件異動紀錄
| Date | Description |
| -------- | -------- |
| 2021-07-30 | 初版內容 |
| 2021-11-29 | 1. 增加環境說明<br>2. 調整部分說明方式 |
---
## API 版本異動紀錄
| API Version | Update Description | Date |
| -------- | -------- | -------- |
| v1 | 初版內容 | 2021-07-30 |
---
## 環境
* 測試環境 `https://carguru-shop-uat.kagulu.com`
* 正式環境 `https://shop.carguru.com.tw`
---
## API 驗證
* 新芽端會提供測試環境及正式環境共兩組 API token
* API共用同一環境的token
例如 `https://carguru-shop-uat.kagulu.com/backstage/api/XXX/YYY` 及 `https://carguru-shop-uat.kagulu.com/backstage/api/YYY/ZZZ` 共用測試環境的token
或是 `https://shop.carguru.com.tw/backstage/api/XXX/YYY` 及 `https://shop.carguru.com.tw/backstage/api/YYY/ZZZ` 共用正式環境的token
* 請在 headers 增加 Key
| Key Name | Data Type | Example |
| -------- | -------- | -------- |
| authentication | String | `ABCDEFK5654FEFE4584` |
* 權限驗證錯誤 - API token 不正確 (HttpStatusCode: 401)
```json
{
"status": 401,
"message": "token invalid", // 訊息
"data": null
}
```
---
## `/backstage/api/{API Version}/POS/sync/order`
* Method: `POST`
* 同步 `訂單` 資料 目前限制一次一筆訂單
* Parameters
* body
```json
{
"ecOrderSN": "string", // 商城訂單編號
"status": "string", // 訂單狀態 -> SHIPPED: 已出貨 RETURNED: 退貨成功
"shippedAt": "string", // 出貨時間 -> 如為已出貨 為必填 (YYYY-MM-DD HH:ii:ss)
}
```
* Responses
* 成功 (HttpStatusCode: 200)
```json
{
"status": 200, // 200 代表成功
"message": "success", // 訊息
"data": null
}
```
* 驗證錯誤1 - 訂單不存在 (HttpStatusCode: 422)
```json
{
"status": 422,
"message": "{ecOrderSN}訂單不存在", // 訊息
"data": null
}
```
* 驗證錯誤2 - 已出貨沒有帶入出貨時間 (HttpStatusCode: 423)
```json
{
"status": 423,
"message": "verification error messages", // 驗證錯誤訊息
"data": null
}
```
* 更新失敗 (HttpStatusCode: 424)
```json
{
"status": 424,
"message": "error messages", // 資料驗證成功但更新失敗 * 如發生此情形請通知新芽
"data": null
}
```