Skip to main content

Dishes

The name and the description of a dish​

A dish title is delivered as two fields:

  • name — the name of the dish, e.g. Seitan Döner Teller
  • description — its components, rendered below the name, e.g. Rotkohl Salat Zwiebeln, Cocktail Sauce. It is null for dishes that have no components.

Both are translated: name and description return the language of the request, while name_i18n / description_i18n return every language.

These used to be a single, comma-separated string in name. If you rely on that older format, ask for it explicitly with name(mode: LONG):

{
dish(where: { id: "…" }) {
name # Seitan Döner Teller
description # Rotkohl Salat Zwiebeln, Cocktail Sauce
# asking for the same field twice needs an alias
fullTitle: name(mode: LONG) # Seitan Döner Teller, Rotkohl Salat Zwiebeln, Cocktail Sauce
}
}

mode accepts SHORT (the name alone) and LONG (name and description joined with , ). It works on name_i18n and name_i18n_json too.

note

API clients that existed before this change still receive the joined title from a plain name, so nothing broke for them. Pass mode explicitly to be independent of that setting — name(mode: SHORT) is the recommended way to move over one query at a time. Get in touch once you no longer need the old format, and we will switch the default for your client.

Fetching dishes for a specific menu category​

You can fetch the queries for a specific menu category.

Parameters​

  • $outletId: The ID of the outlet to fetch the menu categories for.
  • $categoryId: The ID of the menu category to fetch the offers for.

Query​

query GetDishesForMenuCategory($outletId: String!, $categoryId: String!) {
outlet(where: { id: $outletId }) {
calendar {
week {
menuCategory(categoryId: $categoryId) {
category {
name
}
daily {
date {
dateLocal
weekday
}
menuItems {
category {
name
}
... on OutletMenuItemDish {
dish {
name
description
imageUrl
allergens {
allergen {
name
}
}
isVegan
isVegetarian
}
}
}
}
}
}
}
}
}

Graphiql​

Fetching all dishes in all categories​

This query returns all dishes in all categories for a specific outlet.

Parameters​

  • outletId: The ID of the outlet to fetch the menu categories for.
  • $categoryId: The ID of the menu category to fetch the offers for.

Query​

query GetAllDishesForOutlet($outletId: String!) {
outlet(where: { id: $outletId }) {
calendar {
week {
menuCategory(categoryId: $categoryId) {
category {
name
}
daily {
date {
dateLocal
weekday
}
menuItems {
category {
name
}
... on OutletMenuItemDish {
dish {
name
description
imageUrl
allergens {
allergen {
name
}
}
isVegan
isVegetarian
}
}
}
}
}
}
}
}
}

Graphiql​

Fetching for weeks​

You can fetch the menus or dishes for a whole Week. A week starts from Monday to Sunday.

Next/Previous week​

Parameters​

  • outletId: The ID of the outlet to fetch the menu categories for.
  • week: (optional) The week to fetch. Can be next, prev, prev2 or a specific week like 13 for the 13th week of the year.
  • year: (optional) The year YYYY.

Query​

next week

query GetNextWeek($outletId: String!) {
outlet(where: { id: $outletId }) {
calendar {
week(week: "next") {
...
}
}
}
}

last week

query GetPrevWeek($outletId: String!) {
outlet(where: { id: $outletId }) {
calendar {
week(week: "prev") {
...
}
}
}
}

two weeks ago

query GetPrev2Week($outletId: String!) {
outlet(where: { id: $outletId }) {
calendar {
week(week: "prev2") {
...
}
}
}
}

specific week

query GetWeek($outletId: String!, $week: String!, $year: String!) {
outlet(where: { id: $outletId }) {
calendar {
week(week: $week, year: $year) {
...
}
}
}
}

Graphiql​

fetching additional weekly infos​

You can fetch additional weekly infos for a specific outlet.

Parameters​

  • outletId: The ID of the outlet to fetch the weekly infos for.

Query​

query GetWeeklyInfos($outletId: String!) {
outlet(where: { id: $outletId }) {
calendar {
week {
info {
info
validFrom
validTo
}
}
}
}
}

Graphiql​

Allergens​

Allergens on Dish​

On each Dish menu item you get all allergens this dish contains:

List all Allergens​

To list all allergens you can use the following query: