1. Clientes
Cada centro de costes tiene una lista de clientes asociada sobre los que realizamos ventas. En este documento vamos a ver como recuperar todos los clientes e información de cada uno de ellos
1.1. Rest API : Login
Para poder hacer llamadas a nuestas api's lo primero que ncesitamos es identificarnos mediante una llamada de login
Esa llamada nos retornara una token que después debemos asociar en cada llamada posterior.
Este shell script muestra como authenticar-nos 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
1.2. Rest API : Seleccionar un centro de coste/restaurante
Las peticiones que se describen en los apartados siguientes hacen referencia a un centro de coste. Que 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 documento
El identificador de cenetro de coste se corresponde al campo idOrderCenter de la classe 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
1.3. Rest API : Listar todos clients
Tenemos dos llamadas
GET:
https://www.tspoonlab.com/recipes/api/listCustomersPaged
Podemos pasar los siguentes request params
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 identificat el tipo de cliente. Cada cliente se puede agrupar por tipos de forma que podemos clasificarlos. En el apartado siguiente se explica el funcionamiento
1.4. 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 siguentes request params
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;
}
1.5. 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;
}
1.6. 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 params
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
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