Suministros
Los suministros representan pedidos entregados por proveedores concretos de la cadena de suministro. Contienen una lista de ingredientes —el mismo objeto de ingrediente que en las recetas— y pueden servir como base de datos para los Eaternity Reports, además de dar información sobre compras individuales.
Para una solicitud y una respuesta completas, consultad el caso de uso Suministros para informes basados en suministros.
Visión general
Usad la Supply API para:
- Registrar las compras de ingredientes a proveedores
- Calcular la huella de CO₂ de las entregas de la cadena de suministro
- Generar datos para los Eaternity Reports sobre la sostenibilidad de las compras
- Analizar el impacto ambiental por proveedor
Parámetros de consulta
Todos los endpoints de suministros aceptan los parámetros de consulta full-resource, indicators, return-uids, transient e ingredients-declaration. Valores y valores por defecto: Parámetros de consulta.
Propiedades del suministro
Cada artículo entregado es un objeto de ingrediente. Campos, valores permitidos y matching: Ingredientes.
Propiedades de la solicitud
| Propiedad | Tipo | Obligatoria | Descripción |
|---|---|---|---|
id | String | No | Identificador del suministro. Lo genera Eaternity o lo indica el cliente mediante un PUT. |
kitchen-id | String | Solo en lote | La cocina a la que pertenece el suministro. Obligatorio en POST /supplies/batch; en las rutas por cocina, la cocina se toma de la URL. |
supplier | String | No | Nombre del proveedor concreto de la cadena de suministro |
supplier-id | String | No | Vuestro identificador del proveedor |
invoice-id | String | No | Número de factura (si es distinto del ID del suministro) |
order-date | Date | No | La fecha en que se pidió el suministro. Formato: YYYY-MM-DD |
supply-date | Date | Buena práctica | La fecha de entrega del suministro. Los informes cuentan el suministro en esta fecha. Formato: YYYY-MM-DD |
ingredients | Array | Sí | Los artículos entregados, como objetos de ingrediente. Ved Ingredientes. |
Ejemplo de solicitud
[
{
"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"
}
]
}
}
]
Propiedades de la respuesta (con full-resource=true)
| Propiedad | Tipo | Descripción |
|---|---|---|
id | String | Identificador del suministro |
kitchen-id | String | La cocina a la que pertenece este suministro |
co2-value | Float | Valor total de CO₂ del suministro en gramos de CO₂e |
info-text | String | Notas sobre el cálculo (p. ej., "Two ingredient origins have been estimated.") |
supplier | String | Nombre del proveedor |
supplier-id | String | Identificador del proveedor |
supply-date | String | Fecha de entrega |
ingredients | Array | Ingredientes con sus calificaciones y valores de CO₂ individuales |
indicators | Object | Indicadores ambientales (con indicators=true) |
Ejemplo de respuesta (GET con full-resource=true)
El lote responde con una entrada de estado por suministro, [{"statuscode": 200, "message": "", "supply-id": "d1ed2263", "request-id": 1}]. Los valores se obtienen con 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"
}
}
Operaciones por lotes
Los suministros admiten la creación por lotes mediante POST /supplies/batch. Se pueden crear o actualizar varios suministros en una sola solicitud; cada suministro indica su kitchen-id.
Cada suministro del lote puede incluir un request-id para localizar cada elemento en la respuesta. Cada entrada necesita un request-id o un id de suministro.
Endpoints por cocina
Los suministros se gestionan dentro de una cocina concreta:
| Método | Endpoint | Descripción |
|---|---|---|
POST | /kitchens/{kitchen_id}/supplies/ | Crear un suministro (ID generado por Eaternity) |
GET | /kitchens/{kitchen_id}/supplies/ | Listar todos los IDs de suministro de esta cocina |
GET | /kitchens/{kitchen_id}/supplies/{supply_id} | Obtener un suministro concreto |
PUT | /kitchens/{kitchen_id}/supplies/{supply_id} | Actualizar o crear un suministro con un ID concreto |
DELETE | /kitchens/{kitchen_id}/supplies/{supply_id} | Eliminar un suministro |
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.