DATE:
AUTHOR:
The Toast - API team
Menus API

Menu items and modifiers that contain alcohol are identifiable

DATE:
AUTHOR: The Toast - API team

The menus API has been updated to return information about whether a menu item or modifier contains alcohol and may require, or benefit from, additional handling. Examples for why a restaurant would identify a menu item or modifier as containing alcohol include the following:

  • A menu item or modifier that contains alcohol may require delivery drivers to request identification before giving the items to a guest.

  • Under some local laws and regulations, guests may not accrue discount or loyalty points on purchases of items that contain alcohol.

Note that not all menu items or modifiers that contain alcohol require, or benefit from, additional handling. For example, a drink containing rum would require an ID check before it is delivered, while a piece of rum cake would not. The alcohol identification feature is designed for menu items and modifiers that need some type of additional handling after they are ordered, such as an ID check or the prevention of loyalty point accruals.

Support for alcohol identification in the menus API

To support the identification of items that contain alcohol, the MenuItem and ModifierOption objects of the menus API have a new contentAdvisories value. The following code sample shows the contentAdvisories value on a MenuItem object:

"menuItems": [
  {
    "name": "Rum Punch",
    "guid": "0a6e4999-cfl1-4dd6-bf4d-f4d2b65f7d88",
    "multiLocationId": "100000000100009153",

    [contents omitted]

    "contentAdvisories": {
      "alcohol": {
        "containsAlcohol": "YES"
      }
    }
  }                       
]

The contentAdvisories value holds a single object of type ContentAdvisories. The purpose of the ContentAdvisories object is to encapsulate important information about a menu item or modifier's contents. Currently, this object only has information about whether a menu item or modifier contains alcohol. In the future, it could be used for other content information, such as whether the menu item or modifier contains common allergens or is compatible with various dietary restrictions.

The ContentAdvisories object has an alcohol value that holds a single object of type Alcohol. The Alcohol object encapsulates information related to the alcoholic aspects of the menu item or modifier. Currently, the Alcohol object has one value, containsAlcohol. The containsAlcohol value is a string and may be one of the following:

  • YES - The menu item or modifier contains alcohol.

  • NO - The menu item or modifier does not contain alcohol.

The containsAlcohol value may also be null. A null value indicates that the corresponding user interface option in Toast Web has not been set for this menu item or modifier.

The following code samples show the different ways the containsAlcohol value may appear in the menus response data.

MenuItem examples

A MenuItem object for an item that contains alcohol:

"menuItems": [
  {
    "name": "Rum Punch",
    "guid": "0a6e4999-cfl1-4dd6-bf4d-f4d2b65f7d88",
    "multiLocationId": "100000000100003519",

    [contents omitted]

    "contentAdvisories": {
      "alcohol": {
        "containsAlcohol": "YES"
      }
    }
  }                       
]

A MenuItem object for an item that does not contain alcohol:

"menuItems": [
  {
    "name": "Rum Cake",
    "guid": "0a6e4999-cfl1-4dd6-bf4d-f4d2b65f7d88",
    "multiLocationId": "100000000100009153",

    [contents omitted]

    "contentAdvisories": {
      "alcohol": {
        "containsAlcohol": "NO"
      }
    }
  }                       
]

A MenuItem object for an item whose containsAlcohol option has not been set in Toast Web:

"menuItems": [
  {
    "name": "Grilled Cheese",
    "guid": "0a6e4999-cfl1-4dd6-bf4d-f4d2b65f7d88",
    "multiLocationId": "100000000100009153",

    [contents omitted]

    "contentAdvisories": {
      "alcohol": {
        "containsAlcohol": null
      }
    }
  }                       
]

ModifierOption examples

A ModifierOption object for a modifier that contains alcohol:

"modifierOptionReferences": {
  "1": {
    "referenceId": 1,
    "name": "Rum Shot",
    "guid": "429f9045-74a1-81bc-4c48-86ce51c2f6ae",
    "multiLocationId": "100000000100008684",

    [contents omitted]

    "contentAdvisories": {
      "alcohol": {
        "containsAlcohol": "YES"
      }
    }
  }
}

A ModifierOption object for a modifier that does not contain alcohol:

"modifierOptionReferences": {
  "2": {
    "referenceId": 2,
    "name": "Lettuce",
    "guid": "429f9045-74a1-81bc-4c48-86ce51c2f6ae",
    "multiLocationId": "100000000100008684",

    [contents omitted]

    "contentAdvisories": {
      "alcohol": {
        "containsAlcohol": "NO"
      }
    }
  }
}

A ModifierOption object for a modifier that has not had its containsAlcohol option set in Toast Web:

"modifierOptionReferences": {
  "3": {
    "referenceId": 3,
    "name": "Cheese",
    "guid": "429f9045-74a1-81bc-4c48-86ce51c2f6ae",
    "multiLocationId": "100000000100008684",

    [contents omitted]

    "contentAdvisories": {
      "alcohol": {
        "containsAlcohol": null
      }
    }
  }
}

containsAlcohol value is null until the corresponding user interface option is available

The ModifierOption value has been included in the menus API payload now, before the corresponding user interface option has been added to Toast Web, to allow you to prepare your integration to consume the new value before restaurants start using it in their configurations. This means that, until the UI option is available, the containsAlcohol value for menu items and modifiers will always be null. A subsequent release note will inform you when the UI option is available in Toast Web and restaurants may begin using it to identify menu items and modifiers that contain alcohol.

UI option for modifiers will exist on the item reference details page

When it becomes available, the UI option to indicate that a modifier contains alcohol will exist on the details page for the modifier’s underlying menu item reference, not on the details page for the modifier itself.

Powered by LaunchNotes