Ir al contenido principal
Rest API. Clientes

Listar clientes y recuperar información

Rafel Tugues avatar
Escrito por Rafel Tugues
Actualizado hace más de 2 años

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

  1. start (int). Número de la primera fila a retornar. Es obligatorio

  2. rows (int). Número de filas a retornar. Es obligatorio

  3. filter (String). Cadena para filtrar los clientes Es opcional

  4. 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

  1. start (int). Número de la primera fila a retornar. Es obligatorio

  2. rows (int). Número de filas a retornar. Es obligatorio

  3. 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

  1. start (int). Número de la primera fila a retornar. Es obligatorio

  2. rows (int). Número de filas a retornar. Es obligatorio

  3. filter (String). Cadena para filtrar los clientes Es opcional

  4. 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

¿Ha quedado contestada tu pregunta?