Bei den Artikelstammdaten werden die Rezepturen der Verkaufsartikel aus der Richtung der Einkaufsartikel (Lieferanten, Rezepturen, Inhaltsstoffe, Wareneinsatz usw.) definiert.

Voraussetzungen für den Zugriff auf merchandiseman sind in Endpunkte Artikelstammdaten - Allgemein beschrieben.

Für die Fehlerbehandlung werden außer dem Fehlercode auch genauere Informationen zurückgegeben.


Datenstruktur von Verkaufsartikeln 

Nachfolgende Liste beschreibt die Daten, welche von der API abgerufen werden oder welche beim Anlegen oder Aktualisieren von Rezepten geschickt werden müssen.


FeldDatentypBeschreibung
idnull, integer
Indexfeld
ID des Artikels; wird von LINA generiert. Beim Anlegen eines neuen Artikels wird dieser Wert automatisch gesetzt.
numberinteger PflichtfeldArtikelnummer des Artikels
namestringName des Artikels
activebooleanStatus des Artikels (aktiv oder inaktiv)
functionstringArtikelfunktion; kann folgende Werte annehmen:
  • MAIN -> Hauptartikel
  • TENDER -> Tender
  • COURSE_COMPILATION -> Menüzusammenstellung
  • INFORMATION -> Information
detailcategoryintegerID der Feinsparte
meccodenull, integer
Pflichtfeld
ID des MEC
productUsedoubleBerechneter Wareneinsatz, readonly Feld, welches von Amadeus360 beim Ändern der Rezeptur berechnet wird. 
fixedwedoublefixer Wareneinsatz; er legt den netto Wareneinsatz des Artikels fest
pricesarrayArray von Preisen
prices[].activebooleanStatus des Preises (aktiv oder inaktiv)
prices[].priceperunitdoubleAuf zwei Nachkommastellen beschränkter Preis pro Einheit (Standardpreis)
prices[].pricefixeddoubleAuf zwei Nachkommastellen beschränkter fixierter Preis
prices[].menucardintegerID des Angebots
prices[].siteintegerID der Verkaufsstelle
prices[].vat1null, integerID der Steuer 1
prices[].vat2null, integerID der Steuer 2
prices[].vat3null, integerID der Steuer 3
prices[].pricelevelsarrayArray von Preisen im Zusammenhang mit den Preisleveln
prices[].pricelevels[].numberintegerID des Preislevels
prices[].pricelevels[].pricedoublePreis mit zwei Nachkommastellen
attributesarrayArray der Attribute (Zusatzstoffe, Allergene, Nährwerte)
attributes[].attributeTypestringallergen, additive oder nutrition
attributes[].attributeIDintegerID des Attributs (siehe Handbuch)
attributes[].attributeNamestringAnzeigename des Attributes
attributes[].valueinteger
double
Falls das Attribut Ja/Nein ist, dann kann der Wert 0 oder 1 sein.
Bei Nährwerten die Zahl (ohne Einheit).

 

Alle Rezepte abfragen

Um die Rezepte abzufragen, werden keine speziellen Parameter benötigt. 

Aufruf:

GET ... /extern/merchandiseman/recipe

Antwort-Beispiel:

[
    {
        "id": "jvAE-T6I7gYp8p0BVREbCcnzmoI",
        "number": 1234,
        "name": "Testartikel",
        "active": false,
        "function": "MAIN",
        "detailcategory": 0,
        "meccode": null,
        "productUse": 0,
        "prices": [
            {
                "active": true,
                "priceperunit": 0,
                "pricefixed": 0,
                "menucard": 0,
                "site": 0,
                "vat1": null,
                "vat2": null,
                "vat3": null,
                "pricelevels": [
                    {
                        "number": 1,
                        "price": "0"
                    },
                    {
                        "number": 2,
                        "price": "0"
                    },
                    {
                        "number": 3,
                        "price": "0"
                    }
                ]
            }
        ],
        "attributes": [
            {
                "attributeType": "allergen",
                "attributeId": 48,
                "attributeName": "enthält Eier und Eierzeugnisse",
                "value": 1
            },
            {
                "attributeType": "nutrition",
                "attributeId": 60,
                "attributeName": "Energie",
                "value": 220
            }
        ]
    }
]


Einzelnes Rezept abfragen

Mittels ID besteht die Möglichkeit, ein einzelnes Rezept abzufragen. Die Struktur bleibt gegenüber der Liste aller Rezepte unverändert. Statt eines Arrays von Rezepten wird nur ein einzelnes Rezept (JSON-Objekt) zurückgegeben.

Aufruf:

GET ... /extern/merchandiseman/recipe/id/{id}

Der Teil {id} muss hierbei durch die Artikel-ID ersetzt werden.

API-Doku: https://documenter.getpostman.com


Fehlerbehandlung für Rezepte

Nachfolgende Liste gibt einen Überblick über die möglichen Fehler, die von Amadeus 360 zurückgegeben werden.


Antwort-Beispiel (Status 400):

Falls der Content-Type falsch gesetzt wurde, oder keine Daten übermittelt wurde, wird der Fehler 400 ausgegeben.

{
    "status": "error",
    "message": "Content-Type is not application/json"
}

Antwort-Beispiel (Status 403):

Falls das Hochladen von Artikeln nicht als Modul in Amadeus 360 gebucht ist, dann wird der Fehler 403 ausgegeben.

{
    "status": "error",
    "message": "Module is not enabled for payment"
}

Möglicher Fehler bei: POST, PUT


Antwort-Beispiel (Status 404):

Falls das Rezept nicht gefunden wird, erhält man bei der Abfrage den Status 404.

{
    "status": "error",
    "message": "Resource not found"
}

Möglicher Fehler bei: GET (mit ID), PUT

Antwort-Beispiel (Status 405):

Falls etwas anderes als GET, PUT oder POST übergeben wird, antwortet der Server mit Status 405.

{
    "status": "error",
    "message": "Verb not allowed"
}

Antwort-Beispiel (Status 500):

Falls ein oder mehrere Artikel wegen eines Serverfehlers nicht gespeichert werden können, wird Status 500 zurückgegeben.

{
    "status": "success",
    "message": "Processing data (partially) failed"
}



Attribute in neuem Artikel: Allergene, Zusatzstoffe, Nährwerte