BETA: Please note that the current endpoints are considered beta. It is possible there may be changes before these endpoints are finalised.

Menu

A list of Menus that are available for an organization.

See currencies for more information on providing and using currency values. All values are in lowest denomination.

Get a location Menu

This endpoint allows developers to get menus for a specific store

get /organizations/{organizationId}/locations/{locationId}/menu

Parameters

NameTypeInDescription
organizationIdstringpathOrganization ID
locationIdstringpathLocation ID

Responses

200: OK response.MenuConfig
{
  "categories": [
    {
      "id": "C001",
      "productIds": [
        "P001",
        "P002"
      ],
      "title": "Specials"
    },
    {
      "id": "C001",
      "productIds": [
        "P001",
        "P002"
      ],
      "title": "Specials"
    },
    {
      "id": "C001",
      "productIds": [
        "P001",
        "P002"
      ],
      "title": "Specials"
    }
  ],
  "currency": "AUD",
  "menus": [
    {
      "categoryIds": [
        "C001",
        "C002"
      ],
      "fulfillmentType": [
        "DELIVERY",
        "PICK_UP",
        "SERVICE"
      ],
      "id": "M001",
      "serviceAvailability": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ],
      "serviceAvailabilityOverrides": [
        {
          "closed": true,
          "date": "2023-12-25"
        },
        {
          "date": "2023-12-26",
          "end": "15:30",
          "start": "12:00"
        },
        {
          "date": "2023-12-26",
          "end": "23:59",
          "start": "18:00"
        }
      ],
      "title": "Breakfast"
    },
    {
      "categoryIds": [
        "C001",
        "C002"
      ],
      "fulfillmentType": [
        "DELIVERY",
        "PICK_UP",
        "SERVICE"
      ],
      "id": "M001",
      "serviceAvailability": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ],
      "serviceAvailabilityOverrides": [
        {
          "closed": true,
          "date": "2023-12-25"
        },
        {
          "date": "2023-12-26",
          "end": "15:30",
          "start": "12:00"
        },
        {
          "date": "2023-12-26",
          "end": "23:59",
          "start": "18:00"
        }
      ],
      "title": "Breakfast"
    },
    {
      "categoryIds": [
        "C001",
        "C002"
      ],
      "fulfillmentType": [
        "DELIVERY",
        "PICK_UP",
        "SERVICE"
      ],
      "id": "M001",
      "serviceAvailability": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ],
      "serviceAvailabilityOverrides": [
        {
          "closed": true,
          "date": "2023-12-25"
        },
        {
          "date": "2023-12-26",
          "end": "15:30",
          "start": "12:00"
        },
        {
          "date": "2023-12-26",
          "end": "23:59",
          "start": "18:00"
        }
      ],
      "title": "Breakfast"
    },
    {
      "categoryIds": [
        "C001",
        "C002"
      ],
      "fulfillmentType": [
        "DELIVERY",
        "PICK_UP",
        "SERVICE"
      ],
      "id": "M001",
      "serviceAvailability": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ],
      "serviceAvailabilityOverrides": [
        {
          "closed": true,
          "date": "2023-12-25"
        },
        {
          "date": "2023-12-26",
          "end": "15:30",
          "start": "12:00"
        },
        {
          "date": "2023-12-26",
          "end": "23:59",
          "start": "18:00"
        }
      ],
      "title": "Breakfast"
    }
  ],
  "products": [
    {
      "available": true,
      "description": "Contains beef, lettuce, tomato topped with our special LOKE sauce",
      "id": "P001",
      "imageUrl": "https://example.com/title.png",
      "options": [
        {
          "choices": [
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            }
          ],
          "id": "O001",
          "maxQuantity": 3,
          "minQuantity": 1,
          "title": "Extras"
        },
        {
          "choices": [
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            }
          ],
          "id": "O001",
          "maxQuantity": 3,
          "minQuantity": 1,
          "title": "Extras"
        },
        {
          "choices": [
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            }
          ],
          "id": "O001",
          "maxQuantity": 3,
          "minQuantity": 1,
          "title": "Extras"
        },
        {
          "choices": [
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            }
          ],
          "id": "O001",
          "maxQuantity": 3,
          "minQuantity": 1,
          "title": "Extras"
        }
      ],
      "plu": "HOTFOOD-001",
      "price": {
        "amount": 2300,
        "taxIncluded": 250,
        "taxRate": 0.05
      },
      "priceOverrides": [
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250,
            "taxRate": 0.05
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250,
            "taxRate": 0.05
          }
        }
      ],
      "tags": [
        "gluten free",
        "vegan"
      ],
      "title": "LOKE's Burger",
      "visibility": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ]
    },
    {
      "available": true,
      "description": "Contains beef, lettuce, tomato topped with our special LOKE sauce",
      "id": "P001",
      "imageUrl": "https://example.com/title.png",
      "options": [
        {
          "choices": [
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            }
          ],
          "id": "O001",
          "maxQuantity": 3,
          "minQuantity": 1,
          "title": "Extras"
        },
        {
          "choices": [
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            }
          ],
          "id": "O001",
          "maxQuantity": 3,
          "minQuantity": 1,
          "title": "Extras"
        },
        {
          "choices": [
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            }
          ],
          "id": "O001",
          "maxQuantity": 3,
          "minQuantity": 1,
          "title": "Extras"
        },
        {
          "choices": [
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            }
          ],
          "id": "O001",
          "maxQuantity": 3,
          "minQuantity": 1,
          "title": "Extras"
        }
      ],
      "plu": "HOTFOOD-001",
      "price": {
        "amount": 2300,
        "taxIncluded": 250,
        "taxRate": 0.05
      },
      "priceOverrides": [
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250,
            "taxRate": 0.05
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250,
            "taxRate": 0.05
          }
        }
      ],
      "tags": [
        "gluten free",
        "vegan"
      ],
      "title": "LOKE's Burger",
      "visibility": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ]
    },
    {
      "available": true,
      "description": "Contains beef, lettuce, tomato topped with our special LOKE sauce",
      "id": "P001",
      "imageUrl": "https://example.com/title.png",
      "options": [
        {
          "choices": [
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            }
          ],
          "id": "O001",
          "maxQuantity": 3,
          "minQuantity": 1,
          "title": "Extras"
        },
        {
          "choices": [
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            }
          ],
          "id": "O001",
          "maxQuantity": 3,
          "minQuantity": 1,
          "title": "Extras"
        },
        {
          "choices": [
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            }
          ],
          "id": "O001",
          "maxQuantity": 3,
          "minQuantity": 1,
          "title": "Extras"
        },
        {
          "choices": [
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            },
            {
              "defaultQuantity": 1,
              "maxQuantity": 3,
              "minQuantity": 0,
              "productId": "M001"
            }
          ],
          "id": "O001",
          "maxQuantity": 3,
          "minQuantity": 1,
          "title": "Extras"
        }
      ],
      "plu": "HOTFOOD-001",
      "price": {
        "amount": 2300,
        "taxIncluded": 250,
        "taxRate": 0.05
      },
      "priceOverrides": [
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250,
            "taxRate": 0.05
          }
        },
        {
          "contextType": "MENU",
          "contextValue": "3",
          "price": {
            "amount": 2300,
            "taxIncluded": 250,
            "taxRate": 0.05
          }
        }
      ],
      "tags": [
        "gluten free",
        "vegan"
      ],
      "title": "LOKE's Burger",
      "visibility": [
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        },
        {
          "dayOfTheWeek": "MONDAY",
          "end": "23:59",
          "start": "09:30"
        }
      ]
    }
  ],
  "timeZone": "Australia/Melbourne"
}
404: not_found: Not Found response.

Update a location Menu

This endpoint allows developers to set the entire menu for a specific store

put /organizations/{organizationId}/locations/{locationId}/menu

Parameters

NameTypeInDescription
organizationIdstringpathOrganization ID
locationIdstringpathLocation ID

Request Body

MenuConfig
{
  "name": "Loyal Customers"
}

Responses

204: No Content response.
400: invalid_menu: Bad Request response.
404: not_found: Not Found response.

Get a Menu Product

This endpoint allows you to get a product by ID

get /organizations/{organizationId}/locations/{locationId}/menu/products/{productId}

Parameters

NameTypeInDescription
organizationIdstringpathOrganization ID
locationIdstringpathLocation ID
productIdstringpath

Responses

200: OK response.Product
{
  "available": true,
  "description": "Contains beef, lettuce, tomato topped with our special LOKE sauce",
  "id": "P001",
  "imageUrl": "https://example.com/title.png",
  "options": [
    {
      "choices": [
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        },
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        },
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        },
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        }
      ],
      "id": "O001",
      "maxQuantity": 3,
      "minQuantity": 1,
      "title": "Extras"
    },
    {
      "choices": [
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        },
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        },
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        },
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        }
      ],
      "id": "O001",
      "maxQuantity": 3,
      "minQuantity": 1,
      "title": "Extras"
    }
  ],
  "plu": "HOTFOOD-001",
  "price": {
    "amount": 2300,
    "taxIncluded": 250,
    "taxRate": 0.05
  },
  "priceOverrides": [
    {
      "contextType": "MENU",
      "contextValue": "3",
      "price": {
        "amount": 2300,
        "taxIncluded": 250,
        "taxRate": 0.05
      }
    },
    {
      "contextType": "MENU",
      "contextValue": "3",
      "price": {
        "amount": 2300,
        "taxIncluded": 250,
        "taxRate": 0.05
      }
    },
    {
      "contextType": "MENU",
      "contextValue": "3",
      "price": {
        "amount": 2300,
        "taxIncluded": 250,
        "taxRate": 0.05
      }
    }
  ],
  "tags": [
    "gluten free",
    "vegan"
  ],
  "title": "LOKE's Burger",
  "visibility": [
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    },
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    },
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    },
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    }
  ]
}
404: not_found: Not Found response.

Update a Menu Product

This endpoint allows developers to update an individual product for a specific store. If you need to patch a product, you need to GET and apply manually before calling PUT

put /organizations/{organizationId}/locations/{locationId}/menu/products/{productId}

Parameters

NameTypeInDescription
organizationIdstringpathOrganization ID
locationIdstringpathLocation ID
productIdstringpath

Request Body

ProductPayload
{
  "available": true,
  "description": "Contains beef, lettuce, tomato topped with our special LOKE sauce",
  "imageUrl": "https://example.com/title.png",
  "options": [
    {
      "choices": [
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        },
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        }
      ],
      "id": "O001",
      "maxQuantity": 3,
      "minQuantity": 1,
      "title": "Extras"
    },
    {
      "choices": [
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        },
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        }
      ],
      "id": "O001",
      "maxQuantity": 3,
      "minQuantity": 1,
      "title": "Extras"
    },
    {
      "choices": [
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        },
        {
          "defaultQuantity": 1,
          "maxQuantity": 3,
          "minQuantity": 0,
          "productId": "M001"
        }
      ],
      "id": "O001",
      "maxQuantity": 3,
      "minQuantity": 1,
      "title": "Extras"
    }
  ],
  "plu": "HOTFOOD-001",
  "price": {
    "amount": 2300,
    "taxIncluded": 250,
    "taxRate": 0.05
  },
  "priceOverrides": [
    {
      "contextType": "MENU",
      "contextValue": "3",
      "price": {
        "amount": 2300,
        "taxIncluded": 250,
        "taxRate": 0.05
      }
    },
    {
      "contextType": "MENU",
      "contextValue": "3",
      "price": {
        "amount": 2300,
        "taxIncluded": 250,
        "taxRate": 0.05
      }
    }
  ],
  "tags": [
    "gluten free",
    "vegan"
  ],
  "title": "LOKE's Burger",
  "visibility": [
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    },
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    },
    {
      "dayOfTheWeek": "MONDAY",
      "end": "23:59",
      "start": "09:30"
    }
  ]
}

Responses

204: No Content response.
404: not_found: Not Found response.

Models

MenuConfig

A stores root level menu configuration.

NameTypeDescription
currencystring(enum)The currency used for purchases for this store
"AUD", "SGD", "GBP", "NZD", "USD"
timeZonestringThe time zone of the store in Location/Area format.
categoriesCategory[]List of the store's categories.
menusMenu[]List of the store's menus
productsProduct[]List of the store's products.

Category

A grouping of products that are related.

NameTypeDescription
idstringA unique ID for the category
titlestringThe displayed name for the category
productIdsstring[]All of the IDs of products that will be available in this category

Menu

A collection of products that are available for a specific store.

NameTypeDescription
idstringA unique ID for the menu.
titlestringThe name of the menu to be displayed
categoryIdsstring[]All of the IDs for the menu categories that will be available while this menu is active
fulfillmentTypestring[]The delivery type. Must be of 'DELIVERY', 'PICK_UP' or 'SERVICE'
serviceAvailabilityPeriod[]The days and times of the day at which this menu should be made available
serviceAvailabilityOverridesPeriodOverride[](optional) The dates and times of the day at which this menu has special opening hours or closed (e.g., Public Holiday, Christmas, Chinese New Year, etc). When a date is indicated as closed it should only have one entry in the array for that date.

Period

Time span for an individual day (finishes at 23:59)

NameTypeDescription
dayOfTheWeekstring(enum)The day of the week which these hours will be applied.
"MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"
endstringThe time which the item ceases to be available, in 24-hour HH:MM format, e.g '09:30', '21:59'
startstringThe time which the item becomes available, in 24-hour HH:MM format, e.g '09:30', '21:59'

PeriodOverride

Override service availability for a specific date. When closed is specified start and end must not be specified. Time span for an individual day (finishes at 23:59)

NameTypeDescription
closedboolean(optional) Indicates closed for the specified date. When true the location is closed for the entire date. True when indicating closed for the date, exclude otherwise.
datestringThe date which these hours will be applied.
endstring(optional) The time which location closes, in 24-hour HH:MM format, e.g '09:30', '21:59'. Required only when indicating opening hours, else declare closed true.
startstring(optional) The time when the location opens, in 24-hour HH:MM format, e.g '09:30', '21:59'. Required only when indicating opening hours, else declare closed true.

Product

An individual product that can be ordered at a store.

NameTypeDescription
idstringA unique ID for the product
titlestringThe name of the product
availablebooleanIndicates whether the product can be sold.
descriptionstring(optional) Supplementary information of the product that will be shown to the customer
imageUrlstring(optional) URL to an image of the product. Image requirements: - Hosted on a secure connection (HTTPS). - Image must be in JPEG or PNG
plustring(optional) A PLU/SKU/etc for the product, used for discounting and loyalty. This may be the same as the product ID in some systems, and is not required to be unique. For example a chips may exist on the menu as a main item, and as a side with different IDs but the same PLU.
pricePrice
optionsProductOption[](optional) Specifies the options to be associated with the product, allowing the user to make choices or bundle extras with their product.
priceOverridesPriceOverride[](optional) Overrides the price of a product
tagsstring[](optional) Related tags of a product
visibilityPeriod[](optional) Defines when a product is visible to the customer

ProductOption

Allowing the user to customize the product by making choices or bundling extras with their order.

NameTypeDescription
idstringA unique ID of this option
titlestringThe name of the option
maxQuantityinteger(optional) Maximum cumulative quantity of the choices selected. If omitted the maximum is unlimited.
minQuantityintegerMinimum cumulative quantity of the choices selected
choicesOptionChoice[]List of choices in this option

OptionChoice

NameTypeDescription
productIdstringThe ID of the product added by this choice
defaultQuantityintegerThe default quantity of this choice that will be added
maxQuantityintegerMaximum quantity of this choice that can be added
minQuantityinteger(optional) Minimum quantity of this choice that can be added. If omitted the minimum is 0.

Price

Specifies the price to charge for ordering a product.

NameTypeDescription
amountinteger Specifies the price to charge for ordering the product including tax. Price is in the lowest denomination (e.g., cents). Price should always be integer value (never decimals). Price should always be set even if price is 0.
taxIncludedinteger(optional) Specifies the tax, in the lowest denomination (e.g., cents), that was added to the product. This can be null if tax is unknown. All price.taxIncluded fields on all products can either all be of type int or all be undefined/null. If price.taxRate is a float then price.taxIncluded is required.
taxRatenumber(optional) Specifies the tax rate, as a decimal value (e.g., 5% = 0.05), that was applied to the product. This can be null if tax rate is unknown. All price.taxRate fields on all products can either all be of type float or all be undefined/null. When a price.taxRates is a float price.taxIncluded is required.

PriceOverride

Overrides the product price.

NameTypeDescription
contextTypestring(enum)Type of context in which to override.
"MENU", "PRODUCT"
contextValuestringContext Value
pricePrice

ProductPayload

An updated product, note that omitting a field is the same as setting it to null

NameTypeDescription
titlestringThe name of the product
availablebooleanIndicates whether the product can be sold.
descriptionstring(optional) Supplementary information of the product that will be shown to the customer
imageUrlstring(optional) URL to an image of the product. Image requirements: - Hosted on a secure connection (HTTPS). - Image must be in JPEG or PNG
plustring(optional) A PLU/SKU/etc for the product, used for discounting and loyalty. This may be the same as the product ID in some systems, and is not required to be unique. For example a chips may exist on the menu as a main item, and as a side with different IDs but the same PLU.
pricePrice
optionsProductOption[](optional) Specifies the options to be associated with the product, allowing the user to make choices or bundle extras with their product.
priceOverridesPriceOverride[](optional) Overrides the price of a product
tagsstring[](optional) Related tags of a product
visibilityPeriod[](optional) Defines when a product is visible to the customer

In this article