# Cart API Resources v2.0Beta

Each resource used in the Cart API version 2.0 is listed below.

# Cart

A representation of a cart that contains items for an order the customer will place.

Name Required Type Description
id true guid The unique identifier for the cart.
profileKey true guid The unique profile key for customer.
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 currently in the cart.
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.
subtotal true double The total of all items and options in the cart.
discountTotal true double The total of all discounts applied to the cart.
paymentTotal true double The total of all payments submitted for the cart.
tip true double A tip value.
total true double The total of all items and options in the cart as well as any fees and other charges that may apply.
balance true double The remaining balance on the cart. It is the value of the total less the payments total.
discounts false CartDiscount[] A list of discounts applied to the cart.
payments false CartPayment[] A list of payments submitted for the cart.
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.
expiresOn true date-time The date and time that the cart expires.
createdOn true date-time The date and time that the cart was created.
modifiedOn true date-time The date and time that the cart was last updated.

# Sample

{
    "id": "672fb54a-db33-4549-b55e-90963b721e23",
    "profileKey": "75b7726e-8416-4b13-a54a-b7fae6518b8f",
    "restaurantKey": 1352,
    "partnerKey": "0087",
    "items": [
        {
            "id": "c0b7c57d-7da4-400f-b67a-7b85fd709c0c",
            "menuKey": "ROCO-ZA-3",
            "menuVersion": 202107,
            "menuItemKey": 811000176,
            "displayName": "Classic Cheese Burger",
            "currency": "ZAR",
            "price": 69.00,
            "quantity": 1,
            "value": 88.00,
            "options": [
                {
                    "optionSetKey": 861000001,
                    "optionSetItemKey": 811000011,
                    "displayName": "Beef",
                    "currency": "ZAR",
                    "price": 0.00
                },
                {
                    "optionSetKey": 861000035,
                    "optionSetItemKey": 811000205,
                    "displayName": "Bacon",
                    "currency": "ZAR",
                    "price": 19.00
                }
            ],
            "specialInstructions": null
        }
    ],
    "platform": "Branded App",
    "orderingChannel": "Call and Order",
    "fulfilmentChannel": "Takeaway",
    "currency": "ZAR",
    "subtotal": 88.00,
    "discountTotal": 50.00,
    "paymentTotal": 38.00,
    "tip": 0.00,
    "total": 88.00,
    "balance": 0.00,
    "discounts": [
        {
            "discountId": "30a1187e-6f12-4b7f-85fb-dea3162c4bb3",
            "currency": "ZAR",
            "amount": 50.00,
            "createdOn": "2021-10-19T14:55:56.3214013+00:00"
        }
    ],
    "payments": [
        {
            "paymentId": "349d54c0-4e9e-49c8-b82f-02dda08d69f9",
            "currency": "ZAR",
            "amount": 38.00,
            "createdOn": "2021-10-19T14:56:55.5214013+00:00"
        }
    ],
    "note": "This is just an order level note for order.",
    "specialInstructions": "These are special instructions. They are special. Treat them with care",
    "expiresOn": "2021-10-19T15:27:07+00:00",
    "createdOn": "2021-10-19T14:57:05.5214013+00:00",
    "modifiedOn": "2021-10-19T14:57:07+00:00"
}

# CartDiscount

A representation of a discount that has been applied to a cart.

Name Required Type Description
discountId true string The identifier for the discount.
currency true string(3) The ISO 4217 currency code for the discount.
amount true double The discount amount.
createdOn true date-time The date and time that the discount was created.

# Sample

{
    "discountId": "30a1187e-6f12-4b7f-85fb-dea3162c4bb3",
    "currency": "ZAR",
    "amount": 50.00,
    "createdOn": "2022-02-09T08:51:41.3369528+00:00"
}

# CartItem

A representation of an an item in a cart.

Name Required Type Description
id true guid The unique identifier for the item in the cart.
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.

# Sample

{
    "id": "c0b7c57d-7da4-400f-b67a-7b85fd709c0c",
    "menuKey": "ROCO-ZA-3",
    "menuVersion": 202107,
    "menuItemKey": 811000176,
    "displayName": "Classic Cheese Burger",
    "currency": "ZAR",
    "price": 69.00,
    "quantity": 1,
    "value": 88.00,
    "options": [
        {
            "optionSetKey": 861000001,
            "optionSetItemKey": 811000011,
            "displayName": "Beef",
            "currency": "ZAR",
            "price": 0.00
        },
        {
            "optionSetKey": 861000035,
            "optionSetItemKey": 811000205,
            "displayName": "Bacon",
            "currency": "ZAR",
            "price": 19.00
        }
    ],
    "specialInstructions": null
}

# CartItemOption

A representation of an option for an item.

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

{
    "optionSetKey": 861000001,
    "optionSetItemKey": 811000011,
    "displayName": "Beef",
    "currency": "ZAR",
    "price": 0.00
}

# CartPayment

A representation of a payment that has been submitted for the cart.

Name Required Type Description
paymentId true string The identifier for the payment.
currency true string(3) The ISO 4217 currency code for the payment.
amount true double The payment amount.
createdOn true date-time The date and time that the payment was created.

# Sample

{
    "paymentId": "47c172c8-2fae-4657-92f3-7a8727d6a4aa",
    "currency": "ZAR",
    "amount": 246.00,
    "createdOn": "2022-02-09T08:58:13.1658241+00:00"
}