# 訂單管理工具 API
###### tags: `API`
```
主旨: 訂單管理工具 API
更新日期: 2021-08-19
版本: prototype
作者: Ya-Sheng Chen (Rock)
```
---
### 查詢 主/子訂單
#### 需擁有身份:
* 無
#### 規格:
* URL: /order/fetch-records
* Method: POST
* Headers: Content-Type: application/json
#### Request Body 範例:
| Parameter | Example | Description |
| --------- | --------------------- | ------------------------ |
| page | 0 | 顯示頁次,從 0 起算 |
| per | 10 | 每頁撈回筆數,預設為10筆 |
| order | dict(k : 1 or -1) | 排序 |
| filter | `{ColumnName: value}` | 篩選 |
備註:
>- 日期篩選= 'date_col' : {'start':'2021-08-01',
'end':'2021-08-12'}
`R 查詢動作`
```
{
'pages':0,
'per':2,
'order':{
'customer_id':-1,
},
'filter':{
"customer_id": "",
"billing_date": "",
"estimated_delivery_date": {"start":"2021-06-01","end":"2021-06-02"},
"billing_status": ""
}
}
```
#### `Response Status`:
```
200 OK: 呼叫API成功,內部動作完成的回應需判斷Body
400 Bad Request: 參數組成錯誤
501 Not Implemented: API處理過程發生錯誤
```
#### `Response Body` 範例:
| Parameter | Example | Description |
| --------- | ------- | -------------- |
| Data | JSON | 回傳交易所陣列 |
| Success | True | 動作成功 |
```
{'Count': 1,
'Data': [{'created_at': 'Thu, 12 Aug 2021 17:47:40 GMT',
'customer_id': 5,
'customer_order_nums': '4200247509',
'deleted_at': None,
'end_customer_id': 52,
'end_customer_name': '華碩',
'left_quantity': None,
'name': '華碩',
'order_id': 2,
'sub_order': [{...},{...}]},
'total_quantity': 18218,
'updated_at': None},{...}],
'Page': 0,
'Per': 2,
'Success': True}
```
---
### CRUD 動態操作
#### 需擁有身份:
* 無
#### 規格:
* URL: /order/order
* Method: POST
* Headers: Content-Type: application/json
#### `Request Body` 範例:
| Parameter | Example | Description |
| ------------------- | ---------------------------------- | ------------ |
| action | `C` 新增 `U`更新 `R` 查詢 `D` 刪除 | CRUD動作 |
| target | `TableName` | 表格名稱 |
| filter (`U` or `D`) | `{ColumnName: value}` | 篩選 |
| data (`C` or `U`) | `{ColumnName: value,col:val…}` | 新增or更新值 |
`C 新增動作`
```
create_data = {
'action':'C',
'target':'end_customers_list',
'data': {'customer_id':'2', 'end_customer_name':'居易'}
}
```
`R 查詢動作`
```
Retrieve_data = {
'action':'R',
'target':'end_customers_list',
'filter': {}
}
```
`U 更新動作`
```
update_data = {
'action':'U',
'target':'end_customers_list',
'filter':{"end_customer_id": "53"},
'data': {'end_customer_name': '居易(艾新科)'}
}
```
`D 刪除動作`
```
{
'action':'D',
'target':'end_customers_list',
'filter':{
"end_customer_id": "53"}
}
```
#### `Response Status`:
```
200 OK: 呼叫API成功,內部動作完成的回應需判斷Body
400 Bad Request: 參數組成錯誤
501 Not Implemented: API處理過程發生錯誤
```
#### `Response Body` 範例:
| Parameter | Example | Description |
| -------- | -------- | -------- |
| Success | True | 動作成功 |
```
{'Success': True}
```
---
### 客戶資料取得
#### 需擁有身份:
* 無
#### 規格:
* URL: /order/fetch-customer
* Method: GET
* Headers: Content-Type: application/json
#### `Response Status`:
```
200 OK: 呼叫API成功,內部動作完成的回應需判斷Body
400 Bad Request: 參數組成錯誤
501 Not Implemented: API處理過程發生錯誤
```
#### `Response Body` 範例:
| Parameter | Example | Description |
| --------- | ------- | ----------- |
| Success | True | 動作成功 |
| data | [{…},{…}] | 客戶資訊 |
```
{'Success': True,
'data': [{'cases': [],
'created_at': '2021-08-16 14:55:32',
'customer_id': '1',
'customer_key': 'HS',
'customer_name': '華碩電腦股份有限公司',
'deleted_at': 'None',
'end_customers': [],
'name': '華碩',
'tax_id_nums': 'None',
'updated_at': '2021-08-16 14:55:32'}]
}
```