Creating a Menu entity

A Menu entity defines properties such as menu items, offers, and menu sections.

When defining a Menu entity, use the Menu type.

Menu entity relationship diagram
Figure 1: Menu entity showing its relationship with MenuSection, Availability, MenuItem, MenuItemOption, and MenuItemOffer.

Use MenuSection to organize MenuItem objects into logical categories. This approach is useful for restaurants that have multiple menus. For example, a restaurant might have different menus for breakfast, lunch, and dinner. Each menu can be added as a separate MenuSection.

Each menu item can include a description, image, add-ons, and nutrition information. Offers are used to price the menu item, define times when the item is available, and define times when special prices are active. Data in a Menu entity is expected to change and refreshes with each data feed upload.

The following example defines a basic Menu entity with two different menu sections.

{
  "@type":"Menu",
  "@id":"menu_1"
}
{
  "@type":"MenuSection",
  "@id":"menu_1_pizza",
  "menuId":{
    "@id":"menu_1",
    "displayOrder":1
  },
  "name":"Pizza"
}
{
  "@type":"MenuItem",
  "@id":"menu_1_pizza_cheese",
  "name":"Cheese Pizza - Large",
  "description":"Four cheese pizza with marinara sauce.",
  "parentMenuSectionId":{
    "@id":"menu_1_pizza",
    "displayOrder":1
  }
}
{
  "@type":"MenuItemOffer",
  "@id":"menu_1_pizza_cheese_offer",
  "sku":"6680306",
  "menuItemId":"menu_1_pizza_cheese",
  "price":20.5,
  "priceCurrency":"USD"
}
{
  "@type":"MenuItem",
  "@id":"menu_1_pizza_pesto",
  "name":"Pesto Primavera Pizza - Large",
  "description":"Pesto with pancetta and freshly sliced tomatoes.",
  "parentMenuSectionId":{
    "@id":"menu_1_pizza",
    "displayOrder":2
  }
}
{
  "@type":"MenuItemOffer",
  "@id":"menu_1_pizza_pesto_offer",
  "sku":"9825028",
  "menuItemId":"menu_1_pizza_pesto",
  "price":23.5,
  "priceCurrency":"USD"
}
{
  "@type":"MenuSection",
  "@id":"menu_1_pasta",
  "menuId":{
    "@id":"menu_1",
    "displayOrder":2
  },
  "name":"Pasta"
}
{
  "@type":"MenuItem",
  "@id":"menu_1_pasta_spag",
  "name":"Spaghetti",
  "description":"With meat sauce and meatballs.",
  "parentMenuSectionId":{
    "@id":"menu_1_pasta",
    "displayOrder":1
  }
}
{
  "@type":"MenuItemOffer",
  "@id":"menu_1_pasta_spag_offer",
  "sku":"6680300",
  "menuItemId":"menu_1_pasta_spag",
  "price":15.75,
  "priceCurrency":"USD"
}
{
  "@type":"MenuItem",
  "@id":"menu_1_pasta_spin_ling",
  "name":"Spinach Linguini",
  "description":"Grilled chicken breast, shiitake mushrooms, fresh Roma tomato,
    garlic, and fresh herbs.",
  "parentMenuSectionId":{
    "@id":"menu_1_pasta",
    "displayOrder":2
  }
}
{
  "@type":"MenuItemOffer",
  "@id":"menu_1_pasta_spin_ling_offer",
  "sku":"6680312",
  "menuItemId":"menu_1_pasta_spin_ling",
  "price":15.75,
  "priceCurrency":"USD"
}