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
Jeder gelieferte Artikel ist ein Zutatenobjekt. Felder, erlaubte Werte und Zuordnung: Zutaten.
Request-Eigenschaften
| Eigenschaft | Typ | Pflicht | Beschreibung |
|---|---|---|---|
id | String | Nein | Einkaufs-ID. Entweder von Eaternity erzeugt oder vom Client über einen PUT gesetzt. |
kitchen-id | String | Nur im Batch | Die Küche, zu der der Einkauf gehört. Pflicht in POST /supplies/batch; bei küchenbezogenen Routen stammt die Küche aus der URL. |
supplier | String | Nein | Name des Lieferanten in der Lieferkette |
supplier-id | String | Nein | Ihre ID für den Lieferanten |
invoice-id | String | Nein | Rechnungsnummer (falls abweichend von der Einkaufs-ID) |
order-date | Date | Nein | Datum der Bestellung. Format: YYYY-MM-DD |
supply-date | Date | Empfohlen | Lieferdatum des Einkaufs. Berichte zählen den Einkauf an diesem Datum. Format: YYYY-MM-DD |
ingredients | Array | Ja | Die gelieferten Artikel als Zutatenobjekte. Siehe Zutaten. |
Request-Beispiel
[
{
"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)
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
id | String | Einkaufs-ID |
kitchen-id | String | Die Küche, zu der dieser Einkauf gehört |
co2-value | Float | Gesamter CO₂-Wert des Einkaufs in Gramm CO₂e |
info-text | String | Hinweise zur Berechnung (z. B. "Two ingredient origins have been estimated.") |
supplier | String | Name des Lieferanten |
supplier-id | String | id des Lieferanten |
supply-date | String | Lieferdatum |
ingredients | Array | Zutaten mit einzelnen Bewertungen und CO₂-Werten |
indicators | Object | Umweltindikatoren (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:
| Methode | Endpoint | Beschreibung |
|---|---|---|
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
📄️ Create supplies
Create a single supply in this kitchen. The ID is generated by Eaternity.
📄️ Get all supplies in a kitchen
Returns a list of supply IDs in this kitchen.
📄️ Get a supply
Retrieve a specific supply with calculated CO₂ values.
📄️ Update or create a supply
Update or create this supply with the specific ID.
📄️ Delete a supply
Delete a specific supply.
📄️ Create or update a batch of supplies
Batch operations for supplies allow you to create or update multiple supplies at once.
📄️ Create a supply (standalone)
Create a new supply without specifying the kitchen in the URL path.
📄️ Get a supply (standalone)
Retrieve a supply by its ID without specifying the kitchen.
📄️ Update or create a supply (standalone)
Update an existing supply or create a new one with the specified ID.
📄️ Delete a supply (standalone)
Delete a supply by its ID without specifying the kitchen.