Rest API: Gestión de Almacenes
En este artículo veremos como crear, gestionar y eliminar los almacenes.
Rest API : Login
Para poder hacer llamadas a nuestras API'S lo primero que necesitamos es identificarnos mediante una llamada de login.
Esa llamada nos retornará una token que después debemos asociar en cada llamada posterior.
Este shell script muestra como autenticarnos mediante curl:
[email protected]
password=XXXXXXX
url=https://app.tspoonlab.com/recipes/api
authenticate='username='$username'&password='$password
echo -n 'rememberme:' > rememberme.txt
curl -v --data $authenticate $url/login >> rememberme.txt
En las llamadas posteriores debemos añadir a nuestros headers el token recibido de la llamada de login:
curl -X PUT -v -H "$(cat rememberme.txt)" $url/integration/llamada
Rest API : Seleccionar un centro de coste/restaurante
Las peticiones que se describen en los apartados siguientes hacen referencia a un centro de coste, en la mayoría de los casos se correspondería con un restaurante
Para recuperar la lista de centros de costes y sus identificadores consulta el artículo Rest API: Centros de coste.
El identificador de centro de coste se corresponde al campo idOrderCenter de la clase UserOrderCenter.
Una vez tenemos el identificador este deberá añadirse a los headers para que sea utilizado en llamadas posteriores:
echo -n 'order:351583444167656299610202XXXXXXXXXXXX' >> rememberme.txt
Por lo tanto en nuestros request headers debemos especificar tanto el token devuelto por el login como el identificador del centro de coste:
rememberme:aGVucnkudXBzYWxsLmRAZXXXXXXXXXXXXXXXXXX
order:351583444167656299610202XXXXXXXXXXXX
Rest API : Recuperar los almacenes
Para recuperar los almacenes:
GET:
https://app.tspoonlab.com/recipes/api/listStoresPaged
Podemos pasar los siguientes request parameters:
start (int). Número de la primera fila a retornar. Es obligatorio.
rows (int). Número de filas a retornar. Es obligatorio.
filter (String). Cadena para filtrar los ingredientes. Es opcional.
Retorna:
retorna una List<StoreEntry>
StoreEntry {
String id;
String descr;
boolean defecte;
}
Donde:
id es el identificador del almacén.
descr es el nombre del almacén.
defecte es un almacén por defecto.
Rest API : Recuperar un almacén
GET:
https://app.tspoonlab.com/recipes/api/store/{idStore}/inventory/{idInventory}/components/num/{numComponents}
Donde:
idStore es el identificador del almacén.
idInventory es el inventario a partir del cual queremos recuperar los datos.
null para recuperar todos los datos desde el último inventario.
numComponents indica cuantos componentes queremos retornar.
Retorna:
public class Store {
String id; // Id del almacén
String descr; // Descripción del almacén
String comment; // Comentario del almacén
List<StoreComponent> listComponent; // Components del almacen
}
public class StoreComponent {
String id; // Id del store component
String descr; // Descripción del componente
String idComponent; // Identificador del componente
private String idUse; // Identificador del uso
private String use; // Descipción del uso
private String unit; // unidad
private String idUnit; // Id d la unidad
private Double quantityInventory; // Cantidad del último inventario
private Double quantityInput; // Cantidad total de entradas
private Double quantityOutput; // Canditad total de salidas
private Double quantityDesviation; // Cantidad de las desviaciones detectadas
}
Para poder acceder a mas StoreComponents:
GET:
https://app.tspoonlab.com/recipes/api/store/{idStore}/inventory/{idInventory}/components/paged
Podemos pasar los siguientes request parameters:
start (int). Número de la primera fila a retornar. Es obligatorio.
rows (int). Número de filas a retornar. Es obligatorio.
filter (String). Cadena para filtrar los components. Es opcional.
Retorna una lista de StoreComponent.
Rest API : Crear un almacén
Para crear un almacén:
POST:
https://app.tspoonlab.com/recipes/api/store
Donde en el requestbody pasamos:
public class NewStore {
String descr; // Descripciñon del almacén
String comment; // Comentario
boolean defaultReception; // Almacén por defecto para recepación
boolean defaultProduction; // Almacén por defecto para producción
boolean defaultExpedition; // Almacén por defecto para expedicion
}
Rest API : Borrar un almacén
DELETE:
https://app.tspoonlab.com/recipes/api/store/{idStore}
Al eliminar un almacén se eliminan todos sus inventarios.
Rest API : Añadir un component al almacén
PUT:
https://app.tspoonlab.com/recipes/api/store/{idStore}/components
En el requestbody pasaremos:
public class NewStoreComponentsWrapper {
List<NewStoreComponent> components;
}
public class NewStoreComponent {
String id; // Al añadir nulo
String idComponent; // Identificador del componente
String idUse; // Id del corte o despiece
}
Rest API : Quitar un component de un almacén
Para quitar un producto del almacén:
DELETE:
https://app.tspoonlab.com/recipes/api/store/{idStore}/component/{idStoreComponent}
Rest API : Listar ubicaciones
Para listar las ubicaciones de un almacén:
GET:
https://app.tspoonlab.com/recipes/api/store/{idStore}/locations
Retorna:
Retorna una List<StoreLocation>
public class StoreLocation {
String id; // Identificador de la ubicación
String descr; // Descripción de la ubicación
Integer countStoreComponents; // Número de componentes en la ubicación
String comment;
Rest API : Crear una ubicación
Para crear una ubicación en un almacén:
POST:
https://app.tspoonlab.com/recipes/api/store/{idStore}/location
Pasando:
public class NewStoreLocation {
String descr; // Nombre de la location
String comment;
}
Retorna un IdWrapper con el identificador de la nueva ubicación:
public class IdWrapper {
String id;
}
Rest API : Eliminar una ubicación
Para eliminar una ubicación:
DELETE:
https://app.tspoonlab.com/recipes/api/store/{idStore}/location/{idStoreLocation}
Rest API : Listar componentes dentro de una ubicación
GET:
https://app.tspoonlab.com/recipes/api/storeLocation/{idStoreLocation}/storeComponents
Retorna:
Retorna List<StoreLocationStoreComponent>
public class StoreLocationStoreComponent {
String id; // Identificador del storelocationstorecomponent
String descr; // Descripción del componente
String idComponent; // Identificador del components
String idUse; // Identificador del corte o depiece
String use; // Descripción del corte o despiece
Rest API : Añadir componentes a una ubicación
Para añadir storeComponents a una ubicación debemos pasar una lista de storeComponents a añadir:
POST:
https://app.tspoonlab.com/recipes/api/storeLocation/{idStoreLocation}/storeComponents/add
Pasando en el request body una lista de los idStoreComponents:
public class NewStoreLocationStoreComponentsWrapper {
List<NewStoreLocationStoreComponent> storeComponents;
}
public class NewStoreLocationStoreComponent {
private String id; // Nulo al añadir
private String idStoreComponent; // Identificador del storecomponent
}
Rest API : Quitar componentes de una ubicación
Para quitar storeComponents de una ubicación debemos pasar una lista de storeComponents a eliminar:
POST:
https://app.tspoonlab.com/recipes/api/storeLocation/{idStoreLocation}/storeComponents/delete
Pasando en el request body una lista de los idStoreComponents:
public class NewStoreLocationStoreComponentsWrapper {
List<NewStoreLocationStoreComponent> storeComponents;
}
public class NewStoreLocationStoreComponent {
private String id; // Identificador a eliminar
private String idStoreComponent; // Identificador del storecomponent
}
Rest API : Para mover algunos componentes de un almacén a otro
Para mover algunos storeComponent de un almacén a otro debemos:
PUT:
https://app.tspoonlab.com/recipes/api/store/{idStore}/components/move/some/{idStoreDest}
idStore es el almacén origen y idStoreDest el almacén destino.
Donde pasamos los ids de los storeComponents que queremos mover a otro almacén.
public class NewListIds {
List<String> listIds; // Identificadores de los storecompoenents a mover
}
Rest API : Listar todos los inventarios
Para listar todos los inventarios:
GET:
https://app.tspoonlab.com/recipes/api/listInventoriesPaged
Podemos pasar los siguientes request parameters:
start (int). Número de la primera fila a retornar. Es obligatorio.
rows (int). Número de filas a retornar. Es obligatorio.
filter (String). Cadena para filtrar los almacenes. Es opcional.
year (int). Año de los inventarios a recuperar. Es opcional.
month (int). Mes de los inventarios a recuperar. Es opcional.
Retorna:
retorna una List<EntityBaseData>
EntityBaseDate {
String id; // Id del inventario
String descr; // Nombre del almacen
String idAux; // Id del almacen
Integer year;
Integer month;
Date dateGenerated; // Fecha del inventario
}
Donde:
id es el identificador del inventario.
idAux es el identificador del almacén.
descr es el nombre del almacén.
year y month es el año y mes del inventario.
dateGenerated es la fecha del inventario.
Los datos devueltos se ordenan por la fecha del inventario de forma descendente.
Rest API : Recuperar el valor de un inventario
Para recuperar valor de un inventario:
GET:
https://app.tspoonlab.com/recipes/api/inventory/{idInventory}/total
Retorna:
class DoubleWrapper {
Double value;
}
Donde value es la valoración del inventario.
Rest API : Recuperar las cantidades de cada uno de los componentes
Para recuperar las cantidades introducidas en el inventario debemos llamar a:
GET:
https://app.tspoonlab.com/recipes/api/inventory/{idInventory}/components/paged?start=0&rows=50
Donde idInventory es el identificador del inventario.
Podemos pasar los siguientes request parameters:
start (int). Número de la primera fila a retornar. Es obligatorio.
rows (int). Número de filas a retornar. Es obligatorio.
filter (String). Cadena para filtrar los ingredientes. Es opcional.
Retorna:
class StoreComponent {
String id; // Identificador de la entrada del producto en el inventario
String descr; // Nombre del producto
String idComponent; // Identificador del producto
String idComponentType; // id de la familia principal
String componentType; // descripción de la familia principal
Double quantity; // Cantidad del inventario
Double cost; // Coste del recuento
}
idComponentType es el id de la familia principal del producto y componentType su descripción. Más información en el artículo Rest API: Familias.
¿Te ha resultado útil este artículo?
Si necesitas más ayuda, contacta con soporte haciendo clic en el Chat de Soporte Integrado en la esquina inferior derecha de tu pantalla.
