This guide will be removed on April 29, 2022. Please use our new, easier-to-use Toast technical documentation site. All updated content is on the new site.

Working with the Toast menu hierarchy

Toast menus have the following attributes:

  • Inheritance: Each MenuGroup can define MenuOptionGroups to apply to its containing MenuGroups and MenuItems. The final optionGroups in a MenuItem are determined by the inheritOptionGroups boolean property. If the value is true, the MenuItem takes optionGroups from its containing MenuGroup (which in turn may take it from its containing MenuGroup depending on its inheritOptionGroups property).

  • Arbitrary Depth: A MenuItem can reference a MenuOptionGroup that in turn contains MenuItems that refer to MenuOptionGroups, and so forth. MenuGroups regularly contain other MenuGroups, though we encourage restaurants not to nest deeper than two levels.

  • Multiple Parentage: Most Toast menu entities can be referenced by more than one container. MenuItems can be referenced by multiple MenuGroups, and a MenuGroup can be included in multiple Menus and MenuGroups. Position in the tree matters: The same MenuItem might inherit options from one MenuGroup in one subtree, and different options from another MenuGroup in another subtree.