---
# System prepended metadata

title: API Details - Order
tags: [API Details]

---

# API Details - Order
###### tags: `API Details`

#### 取得全部訂單列表

Response Example
```json
{
    "ok": 1,
    "data": [
        {
            "id": 107,
            "orderNumber": "nt2f5fzdhsxd",
            "vendorId": 1,
            "clientId": 2,
            "totalQuantity": 30,
            "totalPrice": 264,
            "pickupTime": null,
            "remarks": "我會自備購物袋",
            "isPaid": false,
            "isCompleted": false,
            "isCanceledByVendor": false,
            "isCanceledByClient": false,
            "createdAt": "2021-10-03T18:10:23.000Z",
            "updatedAt": "2021-10-03T18:10:23.000Z"
        },
        {
            "id": 106,
            "orderNumber": "e250d5mpo66r",
            "vendorId": 1,
            "clientId": 2,
            "totalQuantity": 10,
            "totalPrice": 262,
            "pickupTime": null,
            "remarks": "我會自備購物袋",
            "isPaid": false,
            "isCompleted": true,
            "isCanceledByVendor": false,
            "isCanceledByClient": true,
            "createdAt": "2021-10-03T04:15:31.000Z",
            "updatedAt": "2021-10-03T18:25:06.000Z"
        }
    ]
}
```

#### 取得自己買的訂單列表

Response Example
```json
{
    "ok": 1,
    "data": [
        {
            "id": 107,
            "orderNumber": "nt2f5fzdhsxd",
            "vendorId": 1,
            "clientId": 2,
            "totalQuantity": 30,
            "totalPrice": 264,
            "pickupTime": null,
            "remarks": "我會自備購物袋",
            "isPaid": false,
            "isCompleted": false,
            "isCanceledByVendor": false,
            "isCanceledByClient": false,
            "createdAt": "2021-10-03T18:10:23.000Z",
            "updatedAt": "2021-10-03T18:10:23.000Z"
        },
        {
            "id": 106,
            "orderNumber": "e250d5mpo66r",
            "vendorId": 1,
            "clientId": 2,
            "totalQuantity": 10,
            "totalPrice": 262,
            "pickupTime": null,
            "remarks": "我會自備購物袋",
            "isPaid": false,
            "isCompleted": true,
            "isCanceledByVendor": false,
            "isCanceledByClient": true,
            "createdAt": "2021-10-03T04:15:31.000Z",
            "updatedAt": "2021-10-03T18:25:06.000Z"
        }
    ]
}
```

#### 取得自己賣的訂單列表

Response Example
```json
{
    "ok": 1,
    "data": [
        {
            "id": 107,
            "orderNumber": "nt2f5fzdhsxd",
            "vendorId": 1,
            "clientId": 2,
            "totalQuantity": 30,
            "totalPrice": 264,
            "pickupTime": null,
            "remarks": "我會自備購物袋",
            "isPaid": false,
            "isCompleted": false,
            "isCanceledByVendor": false,
            "isCanceledByClient": false,
            "createdAt": "2021-10-03T18:10:23.000Z",
            "updatedAt": "2021-10-03T18:10:23.000Z"
        },
        {
            "id": 106,
            "orderNumber": "e250d5mpo66r",
            "vendorId": 1,
            "clientId": 2,
            "totalQuantity": 10,
            "totalPrice": 262,
            "pickupTime": null,
            "remarks": "我會自備購物袋",
            "isPaid": false,
            "isCompleted": true,
            "isCanceledByVendor": false,
            "isCanceledByClient": true,
            "createdAt": "2021-10-03T04:15:31.000Z",
            "updatedAt": "2021-10-03T18:25:06.000Z"
        }
    ]
}
```

#### 取得單一訂單明細
Response Example

```json
{
    "ok": 1,
    "data": {
        "order": {
            "id": 107,
            "orderNumber": "nt2f5fzdhsxd",
            "vendorId": 1,
            "clientId": 2,
            "totalQuantity": 30,
            "totalPrice": 264,
            "pickupTime": null,
            "remarks": "我會自備購物袋",
            "isPaid": false,
            "isCompleted": false,
            "isCanceledByVendor": false,
            "isCanceledByClient": false,
            "createdAt": "2021-10-03T18:10:23.000Z",
            "updatedAt": "2021-10-03T18:10:23.000Z"
        },
        "orderItems": [
            {
                "id": 14,
                "productId": 3,
                "orderId": 107,
                "quantity": 10,
                "createdAt": "2021-10-03T18:10:23.000Z",
                "updatedAt": "2021-10-03T18:10:23.000Z",
                "Product": {
                    "id": 3,
                    "vendorId": 1,
                    "name": "玉米罐頭",
                    "categoryId": 1,
                    "pictureUrl": "https://i.imgur.com/mHWygJg.png",
                    "price": 2,
                    "quantity": 380,
                    "manufactureDate": null,
                    "expiryDate": null,
                    "description": "123",
                    "isAvailable": true,
                    "createdAt": "2021-10-01T11:59:07.000Z",
                    "updatedAt": "2021-10-03T18:10:23.000Z"
                }
            },
            {
                "id": 15,
                "productId": 2,
                "orderId": 107,
                "quantity": 10,
                "createdAt": "2021-10-03T18:10:23.000Z",
                "updatedAt": "2021-10-03T18:10:23.000Z",
                "Product": {
                    "id": 2,
                    "vendorId": 1,
                    "name": "烤香腸",
                    "categoryId": 1,
                    "pictureUrl": "https://i.imgur.com/UqorRbJ.png",
                    "price": 262,
                    "quantity": 290,
                    "manufactureDate": null,
                    "expiryDate": "1959-12-31T16:00:00.000Z",
                    "description": "123",
                    "isAvailable": true,
                    "createdAt": "2021-10-01T11:58:57.000Z",
                    "updatedAt": "2021-10-03T18:24:56.000Z"
                }
            },
            {
                "id": 16,
                "productId": 1,
                "orderId": 107,
                "quantity": 10,
                "createdAt": "2021-10-03T18:10:23.000Z",
                "updatedAt": "2021-10-03T18:10:23.000Z",
                "Product": {
                    "id": 1,
                    "vendorId": 1,
                    "name": "food",
                    "categoryId": 1,
                    "pictureUrl": "https://i.imgur.com/ptpIhC0.png",
                    "price": 0,
                    "quantity": 1994,
                    "manufactureDate": null,
                    "expiryDate": "1959-12-31T16:00:00.000Z",
                    "description": "123",
                    "isAvailable": true,
                    "createdAt": "2021-09-29T15:35:49.000Z",
                    "updatedAt": "2021-10-03T18:10:23.000Z"
                }
            }
        ]
    }
}
```


#### 成立訂單

- 新增一張訂單 orders
- 有訂單之後，把購物車商品新增成這張訂單的訂單商品 order_items
- 同時要把要下單的購物車商品從購物車裡刪掉 cart_items
- `orderProducts` 存在 localStorage，呼叫 API 前需先將 `orderProducts` 取出
- request 為 JSON 格式

Request Example
```json
{
    "orderProducts": [
        {
            "id": 3,
            "quantity": 10
        },
        {
            "id": 2,
            "quantity": 10
        },
        {
            "id": 1,
            "quantity": 10
        }
    ],
    "vendorId": 1,
    "pickupTime": "2021-10-04T14:17:45.120Z",
    "remarks": "謝謝老闆~"
}
```

Response Example
```json
{
    "ok": 1,
    "data": {
        "id": 109,
        "orderNumber": "51rg27lhmhcm",
        "vendorId": 1,
        "clientId": 2,
        "totalQuantity": 30,
        "totalPrice": 264,
        "pickupTime": null,
        "remarks": "老闆辛苦了",
        "isCompleted": false,
        "isCanceledByVendor": false,
        "isCanceledByClient": false,
        "updatedAt": "2021-10-04T14:17:45.120Z",
        "createdAt": "2021-10-04T14:17:45.085Z"
    }
}
```

#### 訂單完成

買家點選「完成付款」，要驗證使用者是否和該訂單的 client_id 一樣

Response Example
```json
{
    "ok": 1,
    "data": {
        "id": 108,
        "orderNumber": "resqj87jzlzf",
        "vendorId": 1,
        "clientId": 2,
        "totalQuantity": 30,
        "totalPrice": 264,
        "pickupTime": "2021-10-04T19:59:57.000Z",
        "remarks": "我有帶環保杯~",
        "isPaid": false,
        "isCompleted": true,
        "isCanceledByVendor": false,
        "isCanceledByClient": true,
        "createdAt": "2021-10-04T13:59:57.000Z",
        "updatedAt": "2021-10-04T14:21:16.690Z"
    }
}
```
#### 訂單取消

Response Example
```json
{
    "ok": 1,
    "data": {
        "id": 108,
        "orderNumber": "resqj87jzlzf",
        "vendorId": 1,
        "clientId": 2,
        "totalQuantity": 30,
        "totalPrice": 264,
        "pickupTime": null,
        "remarks": "我會自備購物袋",
        "isPaid": false,
        "isCompleted": false,
        "isCanceledByVendor": false,
        "isCanceledByClient": true,
        "createdAt": "2021-10-04T13:59:57.000Z",
        "updatedAt": "2021-10-04T14:00:36.908Z"
    }
}
```

#### 刪除訂單

Response Example

```json
{
    "ok": 1,
    "message": "Success"
}
```