Die Menükarten-API liefert die öffentliche Menüstruktur für White-Label-Apps, Selbstbedienungskiosks und QR-Ordering-Flows. Das Lesen erfordert keine Authentifizierung; jede schreibende Aktion schon.
- Host:
my.apro.at - Content type:
application/json
Menü abrufen
GET https://my.apro.at/api/v1/locations/{locationId}/menus- Auth: nein
- Beispiel: my.apro.at/api/v1/locations/7236/menus
Die Antwort ist ein Baum. Ebenen von außen nach innen:
- Menu — oberste Gruppierung (z. B. Speisen, Getränke, Angebote).
- Category — Abschnitt innerhalb eines Menüs (z. B. Hauptspeisen).
- MenuEntry — konkreter verkaufbarer Artikel.
- MenuEntryFeature — Beilagen-/Modifier-Gruppe zu einem Artikel.
- MenuEntryFeatureValue — einzelne Option innerhalb einer Gruppe.
- Hours — Gültigkeitsfenster, die an Menüs und Kategorien hängen.
Beispielantwort (gekürzt)
GET /api/v1/locations/{locationId}/menus
[
{
"name": "Speisen",
"badge": 7,
"imageUrl": "https://cdn.smorder.at/locations/7236/menus/speisen.jpg",
"description": "Klassiker aus der österreichischen Küche.",
"priceName": "Hauspreis",
"orderableHours": [
{ "days": 254, "startTime": "11:00", "endTime": "22:00" }
],
"categories": [
{
"name": "Hauptspeisen",
"menuEntries": [
{
"menuEntryID": 4001,
"name": "Wiener Schnitzel",
"badge": 7,
"price": 22.9,
"features": [
{
"name": "Beilage",
"groupName": "Beilage",
"minValuesRequired": 1,
"maxValuesAllowed": 1,
"valuesForFree": 1,
"values": [
{ "name": "Erdäpfelsalat", "priceAdjustment": 0 },
{ "name": "Pommes frites", "priceAdjustment": 0 },
{ "name": "Reis", "priceAdjustment": 0 }
]
},
{
"name": "Ohne",
"isDeselectFeature": true,
"values": [
{ "name": "Preiselbeeren", "priceAdjustment": 0 }
]
}
]
}
]
}
]
}
]Vollständiges, ungekürztes Beispiel herunterladen: menu-response.json
1. Menu
Oberste Gruppierung im Menübaum; enthält Kategorien. Beispiele: Speisen, Getränke, Angebote.
Feld | Typ | Beschreibung |
|---|---|---|
| string | Anzeigename. |
| enum | Optischer Badge — siehe Badges. |
| string | URL zum Titelbild. |
| string | Beschreibungstext. |
| Category[] | Kategorien in diesem Menü. |
| Hours[] | Zeiten, in denen Bestellungen möglich sind. |
| Hours[] | Zeiten, für die Vorbestellungen möglich sind. |
| Hours[] | Zeiten, in denen Zustellung möglich ist. |
| string | Zu verwendende Preisebene (z. B. Hauspreis, Happy Hour). |
Mutationen (Auth erforderlich):
Aktion | Methode | Pfad |
|---|---|---|
Anlegen |
|
|
Aktualisieren |
|
|
Löschen |
|
|
2. Category
Unterpunkt eines Menüs. Beispiele: Alkoholfreie Getränke, Bier, Hauptspeisen, Nachspeisen.
Feld | Typ | Beschreibung |
|---|---|---|
| string | Anzeigename. |
| enum | Siehe Badges. |
| string | URL zum Titelbild. |
| string | Beschreibungstext. |
| MenuEntry[] | Einträge in dieser Kategorie. |
| Hours[] | Bestellzeiten. |
| Hours[] | Vorbestellzeiten. |
| Hours[] | Lieferzeiten. |
Mutationen (Auth erforderlich):
Aktion | Methode | Pfad |
|---|---|---|
Anlegen |
|
|
Aktualisieren |
|
|
Löschen |
|
|
3. MenuEntry
Konkret verkaufbarer Artikel. Beispiele: Wiener Schnitzel, Kaiser Bier.
Feld | Typ | Beschreibung |
|---|---|---|
| integer | Eindeutige ID; wird mit der Bestellung zurückgeschickt. |
| string | Artikelname. |
| enum | Siehe Badges. |
| string | URL zum Artikelbild. |
| string | Kurzbeschreibung. |
| string | Beschreibungstext. |
| MenuEntryFeature[] | Beilagen-Gruppen (Größen, Beilagen …). |
| money | Verkaufspreis. |
Mutationen (Auth erforderlich):
Aktion | Methode | Pfad |
|---|---|---|
Anlegen |
|
|
Aktualisieren |
|
|
Löschen |
|
|
4. MenuEntryFeature
Beilagen-/Modifier-Gruppe eines MenuEntry. Beispiele: Gebindegröße, Beilage zur Hauptspeise.
Feld | Typ | Beschreibung |
|---|---|---|
| string | Bezeichnung der Beilage. |
| string | Beschreibungstext. |
| string | Gruppierungsschlüssel für seitenweise Anzeige. |
| boolean |
|
| number | Maximalanzahl auswählbarer Optionen. |
| number | Mindestanzahl auswählbarer Optionen. |
| number | Anzahl der Optionen ohne Aufpreis. |
| MenuEntryFeatureValue[] | Verfügbare Optionen. |
Mutationen (Auth erforderlich):
Aktion | Methode | Pfad |
|---|---|---|
Anlegen |
|
|
Aktualisieren |
|
|
Löschen |
|
|
5. MenuEntryFeatureValue
Einzelne Ausprägung einer Beilage. Beispiele: Bier 0,3 l, Bier 0,5 l, Pommes, Kartoffeln.
Feld | Typ | Beschreibung |
|---|---|---|
| string | Bezeichnung. |
| string | Beschreibungstext. |
| string | URL zum Optionsbild. |
| number | Mindeststückzahl bei Auswahl. |
| number | Maximale Stückzahl. |
| number | Stückzahl ohne Aufpreis. |
| number | Preisanpassung pro Stück. |
Mutationen (Auth erforderlich):
Aktion | Methode | Pfad |
|---|---|---|
Anlegen |
|
|
Aktualisieren |
|
|
Löschen |
|
|
6. Hours
Gültigkeitsfenster an Menüs oder Kategorien. Sie steuern, wann bestellt, vorbestellt oder geliefert werden darf.
Feld | Typ | Beschreibung |
|---|---|---|
| enum bitmask | Bitmaske der Wochentage — siehe unten. |
| date | Absolutes Startdatum. |
| date | Absolutes Enddatum. |
| daytime | Startzeit an gültigen Tagen. |
| daytime | Endzeit an gültigen Tagen. |
| boolean | Fenster ausschließen statt einschließen. |
Wochentags-Bitmaske:
Tag | Bit | Wert |
|---|---|---|
Montag |
|
|
Dienstag |
|
|
Mittwoch |
|
|
Donnerstag |
|
|
Freitag |
|
|
Samstag |
|
|
Sonntag |
|
|
Beispiel: Mo–Fr ergibt 2 + 4 + 8 + 16 + 32 = 62.
Badges
Optische Hervorhebungen für Menüs, Kategorien und Einträge:
Bezeichnung | Wert |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
