---
# System prepended metadata

title: 訂單管理工具 API
tags: [API]

---

# 訂單管理工具 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'}]
}
```