# Combos
Combos are special meals that combines a group of products, these products may have different names and prices. All products under combos are part of the restaurant's original products
# The Combo Object
# Sample
{
"id": "8d24d6cd",
"sku": "C001",
"barcode": null,
"name": "Lucky Meal",
"name_localized": null,
"description": "...",
"description_localized": null,
"image": "https://path/to/image",
"is_active": true,
"is_ready": true,
"sizes": [
{
"id": "8d24d6cd",
"name": "Medium",
"name_localized": null,
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
],
"items": [
{
"id": "8d24d6cd",
"name": "Sandwich",
"name_localized": null,
"is_upgradable": false,
"options": [
{
"id": "8d24d6cd",
"name": "Beef Sandwitch",
"name_localized": null,
"sizes": {
"8d24d6cd": {
"price": 100,
"product": {
"id": "8d24d6cd"
},
"branches": [
{
"id": "8d24d6cd",
"pivot": {
"price": 70
}
}
]
},
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
}
],
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
],
"category": {
"id": "8d86a04f"
},
"tags": [
{
"id": "8d8306bc",
"pivot": {
"combo_id": "8da2fe98",
"tag_id": "8d8306bc"
}
}
],
"timed_events": [
{
"id": "8df3cf21"
}
],
"groups":[
{
"id":"964da0a0-aafb-4f56-87c2-74f2c458884c"
}
],
"branches": [
{
"pivot": {
"is_active": false
},
"id": "8d82ff0c"
}
],
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
# Combo Attributes
| Field | Type | Rule | Description |
|---|---|---|---|
id | string | Unique identifier for the combo. | |
sku* | string | updatable | SKU of the combo. |
barcode | string | nullable updatable | Barcode of the combo. |
name* | string | updatable | Name of the combo. |
name_localized | string | nullable updatable | Localized name of the combo. |
description | string | nullable updatable | Description of the combo. |
description_localized | string | nullable updatable | Localized description of the combo |
image | string | nullable updatable | The combo image link |
is_active | boolean | updatable | True if the combo is available for selling. |
is_ready | boolean | if false means the combo is missing configurations and should not be sold. | |
category* | object | updatable includable | The Category object attached to the combo |
groups | array | includable | The List of Menu Group attached to the combo |
tags | array | updatable includable | The list of Tags objects attached to the combo |
timed_events | array | updatable includable | The list of Timed Events objects attached to the combo |
branches | array | updatable includable | The list of Branches objects attached to the combo |
sizes | array | updatable includable | The list of combo sizes |
items | array | updatable includable | The list of combo items |
items.options | array | updatable includable | The list of combo items options |
items.options.products | object | updatable includable | The Product attached to combo item option for each combo size |
items.options.branches | array | updatable includable | The Branches attached to combo item option for each size for custom branch pricing |
created_at | string | sortable | Time YYYY-MM-DD HH-MM-SS in UTC at which the combo was created. |
updated_at | string | sortable | Time YYYY-MM-DD HH-MM-SS in UTC at which the combo was updated. |
deleted_at | string | nullable | Time YYYY-MM-DD HH-MM-SS in UTC at which the combo was deleted. |
# Combo Size Attributes
| Field | Type | Rule | Description |
|---|---|---|---|
id | string | Unique identifier for the combo size. | |
name* | string | updatable | Name of the combo size. |
name_localized | string | nullable updatable | Localized name of the combo size. |
created_at | string | Time YYYY-MM-DD HH-MM-SS in UTC at which the combo size was created. | |
updated_at | string | Time YYYY-MM-DD HH-MM-SS in UTC at which the combo size was updated. | |
deleted_at | string | nullable | Time YYYY-MM-DD HH-MM-SS in UTC at which the combo size was deleted. |
# Combo Item Attributes
| Field | Type | Rule | Description |
|---|---|---|---|
id | string | Unique identifier for the combo item. | |
name* | string | updatable | Name of the combo item. |
name_localized | string | nullable updatable | Localized name of the combo item. |
is_upgradable | boolean | updatable | Determine whether the combo item is upgradable or not |
created_at | string | Time YYYY-MM-DD HH-MM-SS in UTC at which the combo item was created. | |
updated_at | string | Time YYYY-MM-DD HH-MM-SS in UTC at which the combo item was updated. | |
deleted_at | string | nullable | Time YYYY-MM-DD HH-MM-SS in UTC at which the combo item was deleted. |
# Combo Item Option Attributes
| Field | Type | Rule | Description |
|---|---|---|---|
id | string | Unique identifier for the combo item option. | |
name* | string | updatable | Name of the combo item. |
name_localized | string | nullable updatable | Localized name of the combo item. |
created_at | string | Time YYYY-MM-DD HH-MM-SS in UTC at which the combo item option was created. | |
updated_at | string | Time YYYY-MM-DD HH-MM-SS in UTC at which the combo item option was updated. | |
deleted_at | string | nullable | Time YYYY-MM-DD HH-MM-SS in UTC at which the combo item option was deleted. |
# Combo Item Option Size Attributes
| Field | Type | Rule | Description |
|---|---|---|---|
price* | double | The price of the combo item option within size | |
product* | object | updatable | The Product attached to the combo item option size |
branches | string | nullable updatable | The Branches attached to the combo item option size |
branches.pivot.price | double | updatable | Custom price for the attached branch |
# List Combos
GET /combos
# Scope
general.read
# Filters
idnamename_localizedskusku_partialbarcodetags.idcategory_idgroups.idupdated_afteris_deletedis_activeanycreated_onupdated_ondeleted_on
# Response
{
"data": [
{
"id": "8d24d6cd",
"sku": "C001",
"barcode": null,
"name": "Lucky Meal",
"name_localized": null,
"description": "...",
"description_localized": null,
"image": "https://path/to/image",
"is_active": true,
"is_ready": true,
"sizes": [
{
"id": "8d24d6cd",
"name": "Medium",
"name_localized": null,
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
],
"items": [
{
"id": "8d24d6cd",
"name": "Sandwich",
"name_localized": null,
"is_upgradable": false,
"options": [
{
"id": "8d24d6cd",
"name": "Beef Sandwitch",
"name_localized": null,
"sizes": {
"8d24d6cd": {
"price": 100,
"product": {
"id": "8d24d6cd"
},
"branches": [
{
"id": "8d24d6cd",
"pivot": {
"price": 70
}
}
]
},
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
}
],
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
],
"category": {
"id": "8d86a04f"
},
"tags": [
{
"id": "8d8306bc",
"pivot": {
"combo_id": "8da2fe98",
"tag_id": "8d8306bc"
}
}
],
"timed_events": [
{
"id": "8df3cf21"
}
],
"branches": [
{
"pivot": {
"is_active": false
},
"id": "8d82ff0c"
}
],
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
]
}
# Get Combo
GET /combos/{comboId}
# Scope
general.read
# Response
{
"data": {
"id": "8d24d6cd",
"sku": "C001",
"barcode": null,
"name": "Lucky Meal",
"name_localized": null,
"description": "...",
"description_localized": null,
"image": "https://path/to/image",
"is_active": true,
"is_ready": true,
"sizes": [
{
"id": "8d24d6cd",
"name": "Medium",
"name_localized": null,
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
],
"items": [
{
"id": "8d24d6cd",
"name": "Sandwich",
"name_localized": null,
"is_upgradable": false,
"options": [
{
"id": "8d24d6cd",
"name": "Beef Sandwitch",
"name_localized": null,
"sizes": {
"8d24d6cd": {
"price": 100,
"product": {
"id": "8d24d6cd"
},
"branches": [
{
"id": "8d24d6cd",
"pivot": {
"price": 70
}
}
]
},
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
}
],
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
],
"category": {
"id": "8d86a04f"
},
"tags": [
{
"id": "8d8306bc",
"pivot": {
"combo_id": "8da2fe98",
"tag_id": "8d8306bc"
}
}
],
"timed_events": [
{
"id": "8df3cf21"
}
],
"groups":[
{
"id":"964da0a0-aafb-4f56-87c2-74f2c458884c"
}
],
"branches": [
{
"pivot": {
"is_active": false
},
"id": "8d82ff0c"
}
],
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
}
# Create Combo
POST /combos
# Scope
menu.write
# Request
{
"sku": "C001",
"barcode": null,
"name": "Lucky Meal",
"name_localized": null,
"description": "...",
"description_localized": null,
"image": "https://path/to/image",
"is_active": true,
"category_id": "8d207fc3",
"tags": [
{
"id": "8d207fc3"
}
],
"timed_events": [
{
"id": "8d207fc3"
}
],
"groups":[
{
"id":"964da0a0-aafb-4f56-87c2-74f2c458884c"
}
]
}
# Response
{
"data": {
"id": "8d24d6cd",
"sku": "C001",
"barcode": null,
"name": "Lucky Meal",
"name_localized": null,
"description": "...",
"description_localized": null,
"image": "https://path/to/image",
"is_active": true,
"is_ready": true,
"sizes": [
{
"id": "8d24d6cd",
"name": "Medium",
"name_localized": null,
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
],
"items": [
{
"id": "8d24d6cd",
"name": "Sandwich",
"name_localized": null,
"is_upgradable": false,
"options": [
{
"id": "8d24d6cd",
"name": "Beef Sandwitch",
"name_localized": null,
"sizes": {
"8d24d6cd": {
"price": 100,
"product": {
"id": "8d24d6cd"
},
"branches": [
{
"id": "8d24d6cd",
"pivot": {
"price": 70
}
}
]
},
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
}
],
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
],
"category": {
"id": "8d86a04f"
},
"tags": [
{
"id": "8d8306bc",
"pivot": {
"combo_id": "8da2fe98",
"tag_id": "8d8306bc"
}
}
],
"timed_events": [
{
"id": "8df3cf21"
}
],
"groups":[
{
"id":"964da0a0-aafb-4f56-87c2-74f2c458884c"
}
],
"branches": [
{
"pivot": {
"is_active": false
},
"id": "8d82ff0c"
}
],
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
}
# Update Combo
PUT /combos/{comboId}
# Scope
menu.write
# Request
{
"sku": "C001",
"barcode": null,
"name": "Lucky Meal",
"name_localized": null,
"description": "...",
"description_localized": null,
"image": "https://path/to/image",
"is_active": true,
"category_id": "8d207fc3",
"tags": [
{
"id": "8d207fc3"
}
],
"timed_events": [
{
"id": "8d207fc3"
}
],
"groups":[
{
"id":"964da0a0-aafb-4f56-87c2-74f2c458884c"
}
]
}
# Response
{
"data": {
"id": "8d24d6cd",
"sku": "C001",
"barcode": null,
"name": "Lucky Meal",
"name_localized": null,
"description": "...",
"description_localized": null,
"image": "https://path/to/image",
"is_active": true,
"is_ready": true,
"sizes": [
{
"id": "8d24d6cd",
"name": "Medium",
"name_localized": null,
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
],
"items": [
{
"id": "8d24d6cd",
"name": "Sandwich",
"name_localized": null,
"is_upgradable": false,
"options": [
{
"id": "8d24d6cd",
"name": "Beef Sandwitch",
"name_localized": null,
"sizes": {
"8d24d6cd": {
"price": 100,
"product": {
"id": "8d24d6cd"
},
"branches": [
{
"id": "8d24d6cd",
"pivot": {
"price": 70
}
}
]
},
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
}
],
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
],
"category": {
"id": "8d86a04f"
},
"tags": [
{
"id": "8d8306bc",
"pivot": {
"combo_id": "8da2fe98",
"tag_id": "8d8306bc"
}
}
],
"timed_events": [
{
"id": "8df3cf21"
}
],
"groups":[
{
"id":"964da0a0-aafb-4f56-87c2-74f2c458884c"
}
],
"branches": [
{
"pivot": {
"is_active": false
},
"id": "8d82ff0c"
}
],
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
}
# Delete Combo
DELETE /combos/{comboId}
# Scope
menu.write
The API will respond with 200 indicating that the combo has been deleted.
# Restore Combo
PUT /combos/{comboId}/restore
# Scope
admin.restore
The API will respond with 200 indicating that the combo has been restored.
# Attach Branch Attributes to Combo
POST /combos/{comboId}/branches/{branchId}
Some attributes could have special values in a specific branch or set of branches, you can define these attachments with the following request.
# Scope
menu.write
# Request
{
"is_active": false
}
# Response
{
"data": {
"id": "8d24d6cd",
"sku": "C001",
"barcode": null,
"name": "Lucky Meal",
"name_localized": null,
"description": "...",
"description_localized": null,
"image": "https://path/to/image",
"is_active": true,
"is_ready": true,
"branches": [
{
"pivot": {
"is_active": false
},
"id": "8d20cc87"
}
],
"created_at": "2019-03-06 17:33:41",
"updated_at": "2019-03-06 17:33:41",
"deleted_at": null
}
}
# Remove Branch Attributes from Combo
Some attributes could have special values in a specific branch or set of branches, you can remove these attachments with the following request.
DELETE /combos/{comboId}/branches/{branchId}
# Scope
menu.write
The API will respond with 200 indicating that the Branch attributes has been removed.
# Create Combo Size
Ristecho Create Combo Size API Allows you to create a new combo size for a specific combo based on the provided comboId.
POST /combos/{comboId}/sizes
# Scope
menu.write
# Request
{
"name": "Medium",
"name_localized": null
}
# Response
{
"data": {
"id": "8dacddbd",
"name": "Regular",
"name_localized": null,
"created_at": "2019-05-13 08:25:40",
"updated_at": "2019-05-13 08:25:40",
"deleted_at": null
}
}
# Update Combo Size
Ristecho Update Combo Size API Allows you to update a single combo size for a specific combo based on the provided sizeId & the comboId.
PUT /combos/{comboId}/sizes/{sizeId}
# Request
{
"name": "Medium",
"name_localized": null
}
# Response
{
"data": {
"id": "8dacddbd",
"name": "Regular",
"name_localized": null,
"created_at": "2019-05-13 08:25:40",
"updated_at": "2019-05-13 08:25:40",
"deleted_at": null
}
}
# Delete Combo Size
Ristecho Delete Combo Size API Allows you to delete a single combo size from a specific combo based on the provided sizeId & the comboId.
DELETE /combos/{comboId}/sizes/{sizeId}
The API will respond with 200 indicating that the combo size has been deleted.
# Restore Combo Size
Ristecho Restore Combo Size API Allows you to restore a single combo size from a specific combo based on the provided sizeId & the comboId.
PUT /combos/{comboId}/sizes/{sizeId}/restore
The API will respond with 200 indicating that the combo size has been restored.
# Create Combo Item
Ristecho Create Combo Item API Allows you to create a new combo item for a specific combo based on the provided comboId.
POST /combos/{comboId}/items
# Scope
menu.write
# Request
{
"name": "Sandwich",
"name_localized": null,
"is_upgradable": false
}
# Response
{
"data": {
"id": "8dacdea1",
"name": "Sandwich",
"name_localized": null,
"is_upgradable": false,
"created_at": "2019-05-13 08:28:09",
"updated_at": "2019-05-13 08:28:09",
"deleted_at": null
}
}
# Update Combo Item
Ristecho Update Combo Item API Allows you to update a single combo item for a specific combo based on the provided itemId & the comboId.
PUT /combos/{comboId}/items/{itemId}
# Request
{
"name": "Sandwich",
"name_localized": null,
"is_upgradable": false
}
# Response
{
"data": {
"id": "8dacdea1",
"name": "Sandwich",
"name_localized": null,
"is_upgradable": false,
"created_at": "2019-05-13 08:28:09",
"updated_at": "2019-05-13 08:28:09",
"deleted_at": null
}
}
# Delete Combo Item
Ristecho Delete Combo Item API Allows you to delete a single combo item from a specific combo based on the provided itemId & the comboId.
DELETE /combos/{comboId}/items/{itemId}
The API will respond with 200 indicating that the combo item has been deleted.
# Restore Combo Item
Ristecho Restore Combo Item API Allows you to restore a single combo item from a specific combo based on the provided itemId & the comboId.
PUT /combos/{comboId}/items/{itemId}/restore
The API will respond with 200 indicating that the combo item has been restored.
# Create Combo Item Option
Ristecho Create Combo Item Option API Allows you to create a new combo item option in a specific combo item for a specific combo based on the provided comboId & itemId.
POST /combos/{comboId}/items/{itemId}/options
# Scope
menu.write
# Request
{
"name": "Beef",
"name_localized": null
}
# Response
{
"data": {
"id": "8dace100",
"name": "Beef",
"name_localized": null,
"created_at": "2019-05-13 08:34:48",
"updated_at": "2019-05-13 08:34:48",
"deleted_at": null
}
}
# Update Combo Item Option
Ristecho Update Combo Item API Allows you to update a single combo item option in a specific combo item for a specific combo based on the provided comboId , itemId & the optionId.
PUT /combos/{comboId}/items/{itemId}/options/{optionId}
# Request
{
"name": "Beef",
"name_localized": null
}
# Response
{
"data": {
"id": "8dace100",
"name": "Beef",
"name_localized": null,
"created_at": "2019-05-13 08:34:48",
"updated_at": "2019-05-13 08:34:48",
"deleted_at": null
}
}
# Delete Combo Item Option
Ristecho Delete Combo Item Option API Allows you to delete a single combo item option from a specific combo item in a specific combo based on the provided comboId , itemId & the optionId.
DELETE /combos/{comboId}/items/{itemId}/options/{optionId}
The API will respond with 200 indicating that the combo item option has been deleted.
# Restore Combo Item Option
Ristecho Restore Combo Item Option API Allows you to restore a single combo item option in a specific combo item from a specific combo based on the provided comboId , itemId & the optionId.
PUT /combos/{comboId}/items/{itemId}/options/{optionId}/restore
The API will respond with 200 indicating that the combo item option has been restored.
# Attach Combo Option to Product
Ristecho Attach Combo Option To Product API allows you to attach a single Combo Option to a specific product based on the provided comboId, itemId, optionId & the productId.
POST /combos/{comboId}/items/{itemId}/options/{optionId}/sizes/{sizeId}/products/{productId}
# Request
{
"price": 4
}
# Response
{
"data": {
"sizes": {
"8dab03d7": {
"price": 14,
"product": {
"id": "8d90b8d1"
},
"branches": [
{
"pivot": {
"price": 14
},
"id": "8d82ff0c"
}
]
}
},
"id": "8dab048f",
"name": "Beef",
"name_localized": null,
"created_at": "2019-05-12 10:22:34",
"updated_at": "2019-05-12 10:22:34",
"deleted_at": null
}
}
# Attach Combo Option to combo
Each Combo option has to be attached to a combo in each of the combo sizes.
POST /combos/{comboId}/items/{itemId}/options/{optionId}/sizes/{sizeId}/combos/{comboId}
# Request
{
"price": 4
}
# Response
{
"is_active": false
}
# Attach Branch Attributes to Combo Option
Some attributes can have special values in a specific branch or set of branches, you can define these attachments with the following request.
POST /combos/{comboId}/items/{itemId}/options/{optionId}/sizes/{sizeId}/branches/{branchId}
# Request
{
"price": 4
}
# Response
{
"price": 4
}
# Remove Branch Attributes from Combo Option
Some attributes can have special values in a specific branch or set of branches, you can remove these attachments with the following request.
DELETE /combos/{comboId}/items/{itemId}/options/{optionId}/sizes/{sizeId}/branches/{branchId}
The API will respond with 200 indicating that the branch attributes has been deleted.