Rest API: Clientes
Cada centro de coste tiene una lista de clientes asociada sobre los que realizamos ventas. En este documento vamos a ver cómo recuperar todos los clientes e información de cada uno de ellos.
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://www.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 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 : Listar todos clientes
Tenemos dos llamadas:
GET:
https://www.tspoonlab.com/recipes/api/listCustomersPaged
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 clientes. Es opcional.
hidden (Boolean). Retorna solo los ocultos. Es opcional.
Retorna:
retorna una List<TypeEntry>
TypeEntry {
String id;
String descr;
String codi;
boolean defecte;
String descrType;
String idType;
}
Donde:
id es el identificador del cliente.
descr el nombre del cliente.
codi el código del cliente.
defecte es true cuando es el cliente por defecto.
idType y descrType nos identifica el tipo de cliente. Cada cliente se puede agrupar por tipos de forma que podemos clasificarlos. En el apartado siguiente se explica el funcionamiento.
Rest API : Listar todos los tipos de clientes
Para listar los tipos de clientes:
GET:
https://www.tspoonlab.com/recipes/api/listCustomerTypesPaged
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 clientes Es opcional
Retorna:
retorna una List<EntityBaseBoolCodi>
EntityBaseBoolCodi {
String id;
String descr;
String codi;
}
Rest API : Obtener los datos de un cliente
Para obtener los datos de un cliente:
GET:
https://www.tspoonlab.com/recipes/api/customer/{idCustomer}
idCustomer es el identificador del cliente
Nos retorna:
class Customer {
String id;
String descr;
Boolean defecte;
String nif;
String comment;
String web;
String mailcc;
String codi;
String address;
String city;
String cp;
String idCustomerType;
List<CustomerContact> listContact;
List<CustomerMail> listMail;
List<CustomerComponentGroup> listGroups;
}
Donde:
id es el identificador del cliente.
descr es el nombre del cliente.
defecte nos indica si el cliente por defecto.
nif idenficación fiscal del cliente.
comment un comentario sobre el cliente.
mailcc al enviar pedidos por correo al cliente se enviará una copia a este mail.
web dirección http de la web del cliente.
codi código del cliente.
address, city y cp nos indican la dirección postal del mismo.
idCustomerType es el tipo de cliente al que pertenece. Nulo si no queremos asociar ninguno.
listContact es la lista de contactos de ese cliente.
listMail son todos los mails de contacto con ese cliente.
CustomerContact {
String id;
String descr;
String phone;
}
CustomerMail {
String id;
String descr;
}
En CustomerContact descr es el nombre del contacto y en CustomerMail descr es el la dirección de correo electrónico.
listGroups contiene la lista de grupos de productos para ese cliente:
public CustomerComponentGroup {
String id;
String idCustomerGroup;
String customerGroup;
String codiCustomerGroup;
String comment;
}
Rest API : Obtener los productos a la venta
Dentro de ese grupo podemos encontrar los productos a la venta. Pueden existir productos a la venta que no estén asociados a ningún grupo:
GET:
https://www.tspoonlab.com/recipes/api//customer/{idCustomer}/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 clientes Es opcional.
idGroup (String). Si queremos obtener los productos de un grupo. null si queremos obtener los productos no asociados a grupo.
CustomerComponent {
String id;
Double cost;
Double costComponent;
Double percentCost;
String plu;
Double iva;
String currency;
Double quantity;
String unit;
String idUnit;
String idComponent;
String component;
String idMenu;
String menu;
}
Donde:
id: id del producto a la venta.
cost: precio de venta con IVA.
costComponent: coste del producto.
percentCost: % de Food Cost.
plu: código del producto en la TPV (Terminal Punto de Venta).
iva: tipo de IVA aplicado.
currency: moneda.
quantity: cantidad a la venta.
idUnit: identificador de la unidad de venta.
unit: descripción de la unidad de venta.
Podemos tener a la venta productos y agrupaciones.
En caso de producto:
idComponent: identificador del producto.
component: descripción del producto.
En caso de agrupaciones
idMenu: identificador de la agrupación.
menu: descripción de la agrupación.
¿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.
