# Create Cart v2.0Beta
The Create Cart endpoint creates a new cart for a customer profile. Values supplied will be validated against a set of basic validation rules and a new cart will be created.
# Request
POST /v2.0/customers/{profileKey}/carts
# Authorization
An OAuth 2.0 Bearer token with the Cart.Write scope is required. For more information, see Authentication.
# Path Parameters
A list of the supported path parameters is described below.
| Name | Required | Type | Description |
|---|---|---|---|
| profileKey | true | guid | The profile key for the customer. |
# Request Body
The request body must be a JSON representation of a CreateCart object which is described below.
# CreateCart
| Name | Required | Type | Description |
|---|---|---|---|
| partnerKey | true | string(4) | The partner key assigned to you. |
| restaurantKey | true | int | The restaurant key that the order should be placed against. |
| items | false | CartItem[] | A list of items with their selected options to be added to the cart on cart creation. A cart can be created without any items. Additional items can be added over time. |
| platform | true | string(50) | An identifier for the platform the order is being placed from. |
| orderingChannel | true | string(50) | The ordering channel for the order. This value can taken from the menu. |
| fulfilmentChannel | true | string(50) | The fulfilment channel for the order. This value can taken from the menu. |
| currency | true | string(3) | The ISO 4217 currency code for the currency applicable for the items, totals, fees and tip on the order. |
| note | false | string(300) | A note to be submitted with the order. Notes may appear on the customers POS invoice. |
| specialInstructions | false | string(300) | Instructions to be submitted with the order. Special instructions usually only print in the kitchen at the restaurant. |
# CartItem
| Name | Required | Type | Description |
|---|---|---|---|
| menuKey | true | string(20) | The key for the menu that item is from. |
| menuVersion | true | int | The menu version for the menu that item is from. |
| menuItemKey | true | int64 | The key for the menu item. |
| displayName | true | string(100) | The display name of the item. |
| currency | true | string(3) | The ISO 4217 currency code for the currency applicable for the item. |
| price | true | double | The item price excluding the price of any selected options. This is the price of the item on the menu. |
| quantity | true | int | The quantity of the item and its selected options to order. |
| options | false | CartItemOption[] | The options the customer selected for the item. |
| specialInstructions | false | string(300) | Instructions to be submitted for the item. Special instructions print in the kitchen at the restaurant. |
# CartItemOption
| Name | Required | Type | Description |
|---|---|---|---|
| optionSetKey | true | int64 | The option set that the option set item is from. |
| optionSetItemKey | true | int64 | The key for the option. |
| displayName | true | string(100) | The display name of the selected option. |
| currency | true | string(3) | The ISO 4217 currency code for the currency applicable for the option. |
| price | true | double | The price of the selected option. |
# Sample
{
"partnerKey": "0087",
"restaurantKey": 1352,
"platform": "Branded App",
"orderingChannel": "Call and Order",
"fulfilmentChannel": "Takeaway",
"items": [
{
"menuKey": "ROCO-ZA-3",
"menuVersion": 202107,
"menuItemKey": 811000176,
"displayName": "Classic Cheese Burger",
"currency": "ZAR",
"price": 69.00,
"options": [
{
"optionSetKey": 861000001,
"optionSetItemKey": 811000011,
"displayName": "Beef",
"currency": "ZAR",
"price": 0.00
},
{
"optionSetKey": 861000035,
"optionSetItemKey": 811000205,
"displayName": "Bacon",
"currency": "ZAR",
"price": 19.00
}
],
"quantity": 1,
"specialInstructions": null
}
],
"currency": "ZAR",
"note": "This is just an order level note for order.",
"specialInstructions": "These are special instructions. Treat them with care."
}
# Response
200
OK
Returns an ApiResponse envelope.
# Response Body
The endpoint returns our ApiResponse envelope. The data property of the response will contain a cartId.
| Name | Required | Type | Description |
|---|---|---|---|
| cartId | true | guid | The unique identifier for the cart. |
# Sample
{
"message": "The operation succeeded!",
"notifications": [
{
"severity": "Success",
"text": "The cart was created.",
"code": null,
"additionalData": null
}
],
"data": {
"cartId": "672fb54a-db33-4549-b55e-90963b721e23"
}
}
# Errors
The standard error responses apply.
400
Bad Request
When the request fails validation.
401
Unauthorized
When authentication fails.
403
Forbidden
When authorisation fails.