Zum Hauptinhalt springen

Einkäufe

Einkäufe (Supplies) sind Bestellungen, die bestimmte Lieferanten in der Lieferkette liefern. Sie enthalten eine Liste von Zutaten – dasselbe Zutatenobjekt wie in Rezepten. Sie können als Datengrundlage für Eaternity-Berichte dienen und Rückmeldung zu einzelnen Einkäufen geben.

Einen vollständigen Request und eine Response finden Sie im Anwendungsfall Einkäufe für einkaufsbasierte Berichte.

Überblick​

Verwenden Sie die Supply API, um:

  • Zutateneinkäufe bei Lieferanten zu erfassen
  • den CO₂-Fussabdruck von Lieferungen zu berechnen
  • Daten für Eaternity-Berichte zur Nachhaltigkeit der Beschaffung zu erzeugen
  • die Umweltwirkung pro Lieferant zu analysieren

Query-Parameter​

Alle Supply-Endpoints akzeptieren die Query-Parameter full-resource, indicators, return-uids, transient und ingredients-declaration. Werte und Standardwerte: Query-Parameter.

Einkaufs-Eigenschaften​

Zutaten

Jeder gelieferte Artikel ist ein Zutatenobjekt. Felder, erlaubte Werte und Zuordnung: Zutaten.

Request-Eigenschaften​

EigenschaftTypPflichtBeschreibung
idStringNeinEinkaufs-ID. Entweder von Eaternity erzeugt oder vom Client über einen PUT gesetzt.
kitchen-idStringNur im BatchDie Küche, zu der der Einkauf gehört. Pflicht in POST /supplies/batch; bei küchenbezogenen Routen stammt die Küche aus der URL.
supplierStringNeinName des Lieferanten in der Lieferkette
supplier-idStringNeinIhre ID für den Lieferanten
invoice-idStringNeinRechnungsnummer (falls abweichend von der Einkaufs-ID)
order-dateDateNeinDatum der Bestellung. Format: YYYY-MM-DD
supply-dateDateEmpfohlenLieferdatum des Einkaufs. Berichte zählen den Einkauf an diesem Datum. Format: YYYY-MM-DD
ingredientsArrayJaDie gelieferten Artikel als Zutatenobjekte. Siehe Zutaten.

Request-Beispiel​

POST /supplies/batch
[
{
"request-id": 1,
"supply": {
"id": "d1ed2263",
"kitchen-id": "kitchen-restaurant-a",
"supplier": "Vegetable Supplies Ltd.",
"supplier-id": "el3i5y-2in5y-2hbllll01",
"supply-date": "2013-06-01",
"ingredients": [
{
"id": "100100191",
"type": "conceptual-ingredients",
"names": [
{
"language": "de",
"value": "Tomaten"
}
],
"amount": 150,
"unit": "gram",
"origin": "spain",
"transport": "air",
"production": "greenhouse",
"processing": "raw",
"conservation": "fresh",
"packaging": "plastic"
}
]
}
}
]

Response-Eigenschaften (mit full-resource=true)​

EigenschaftTypBeschreibung
idStringEinkaufs-ID
kitchen-idStringDie Küche, zu der dieser Einkauf gehört
co2-valueFloatGesamter CO₂-Wert des Einkaufs in Gramm CO₂e
info-textStringHinweise zur Berechnung (z. B. "Two ingredient origins have been estimated.")
supplierStringName des Lieferanten
supplier-idStringid des Lieferanten
supply-dateStringLieferdatum
ingredientsArrayZutaten mit einzelnen Bewertungen und CO₂-Werten
indicatorsObjectUmweltindikatoren (wenn indicators=true gesetzt ist)

Response-Beispiel (GET mit full-resource=true)​

Der Batch antwortet mit einem Statuseintrag pro Einkauf, [{"statuscode": 200, "message": "", "supply-id": "d1ed2263", "request-id": 1}]. Die Werte liefert GET /kitchens/kitchen-restaurant-a/supplies/d1ed2263?full-resource=true:

{
"statuscode": 200,
"message": "",
"supply-id": "d1ed2263",
"supply": {
"food-unit": 0.12,
"final-weight-per-portion": 150.0,
"co2-value": 169,
"rating": "C",
"co2-value-improvement-percentage": -82,
"co2-value-reduction-value": -76,
"kitchen-id": "kitchen-restaurant-a",
"supplier": "Vegetable Supplies Ltd.",
"supplier-id": "el3i5y-2in5y-2hbllll01",
"supply-date": "2013-06-01",
"ingredients": [
{
"foodUnit": 0.12,
"co2-value": 169,
"rating": "C",
"co2-value-improvement-percentage": -82,
"co2-value-reduction-value": -76,
"bar-chart": 100,
"id": "100100191",
"type": "conceptual-ingredients",
"names": [{"language": "de", "value": "Tomaten"}],
"amount": 150.0,
"unit": "gram",
"origin": "spain",
"transport": "air",
"production": "greenhouse",
"processing": "raw",
"conservation": "fresh",
"packaging": "plastic"
}
],
"id": "d1ed2263"
}
}

Batch-Operationen​

Einkäufe lassen sich per Batch über POST /supplies/batch anlegen. Mehrere Einkäufe können in einem einzigen Request angelegt oder aktualisiert werden; jeder Einkauf nennt seine kitchen-id.

Jeder Einkauf im Batch kann eine request-id enthalten, um einzelne Einträge in der Response zuzuordnen. Pro Eintrag ist entweder eine request-id oder eine Einkaufs-id erforderlich.

Küchenbezogene Endpoints​

Einkäufe werden unter einer bestimmten Küche verwaltet:

MethodeEndpointBeschreibung
POST/kitchens/{kitchen_id}/supplies/Einen einzelnen Einkauf anlegen (id von Eaternity erzeugt)
GET/kitchens/{kitchen_id}/supplies/Alle Einkaufs-IDs dieser Küche auflisten
GET/kitchens/{kitchen_id}/supplies/{supply_id}Einen bestimmten Einkauf abrufen
PUT/kitchens/{kitchen_id}/supplies/{supply_id}Einen Einkauf mit bestimmter id aktualisieren oder anlegen
DELETE/kitchens/{kitchen_id}/supplies/{supply_id}Einen Einkauf löschen

Endpoints​