Cómo importar datos de ventas de forma automatizada

Aprenda a autenticarse en la API de importación y luego aprenda a enviar información automatizada.

El end point de Importación

El API importación de tbRetail tiene 2 end points, uno para realizar las llamadas de test y otro para realizar las llamadas de producción:

Autenticarse

Para comunicarse con el servidor, necesitará un token OAuth con los alcances (scopes) correctos.

  1. Obtener un token de usuario: Este token de acceso estará asociado al usuario y permitirá obtener los datos que el usuario tiene acceso en la aplicación.

  2. Obtención del token de acceso temporal: Una vez obtenido en el paso 1 un token de usuario, se podrá realizar una petición al servidor para obtener un token temporal de acceso. Este token temporal tiene una validez de 24 horas. Transcurrido dicho periodo deberá solicitarse un nuevo token temporal para poder solicitar los datos. La url de autentificación en la fase de pruebas:

Los valores de las variables para realizar la petición de datos son las siguientes:

Variables

Valor

Variables

Valor

client_id para test

14fuos4vd8u14utepgl46fhjob

client_id para producción

63h4jubc7qvrg9f65c36vjp3bq

redirect_uri en test

https://stage.tbretail.com/mytoken/index.html

redirect_uri en producción

https://login.tbretail.com/mytoken/index.html

refresh_token

Token obtenido en el paso 1

 Código de ejemplo en python con la autentificación

 

import requests import json import datetime refresh_token = "<inserte token obtenido en paso 1>" client_id = '<inserte client id>' redirect_uri = '<inserte redirect uri' # realizar la peticion de autenticacion para obtener el token temporal de acceso token_url = 'https://auth.tbretail.com/oauth2/token' headers = {'Content-Type': 'application/x-www-form-urlencoded'} data = {'grant_type': 'refresh_token', 'client_id': client_id, 'redirect_uri': redirect_uri, 'refresh_token': refresh_token} token_response = requests.post(token_url, data=data, verify=False, allow_redirects=False, headers=headers) access_token = token_response.json()['access_token']

Esta petición devolverá el access_token que podrá ser usado para realizar las peticiones al servidor.

 Petición para enviar el fichero csv al servidor

La petición se debe realizar haciendo un POST al end point de pruebas o de producción.

Los campos que debe contener el fichero separados por coma “,” son los siguientes:

Campo

Descripción

Campo

Descripción

Sensor

Deberá contener la MacAdress del sensor al que se le quieren asignar los datos. No es Case Sensitive.

Zone

Zona del sensor al que se le quieren asignar los datos. Debe coincidir con una de las zonas contenidas en el sensor al que se hace referencia.

Metric

Debe contener fijo 'sales'

Base

Importe de la venta sin IVA.

Taxes

Importe de IVA d ela compra

Total

Base + Taxes

Products

Número de productos dentro del/los tickets

Tickets

Número de tickets que se incluyen en el envío de la línea

Currency

Moneda en la que vienen los importes en formato ISO: EUR, USD, PEM, GBP, NOK, NZD, ARS, CLF, COP, MXN, SVC, etc. Si se desconoce ver tabla en el siguiente link: https://es.wikipedia.org/wiki/ISO_4217

Date

Fecha a la que hace referencia el conteo en formato AAAA-MM-DD HH:MM:SS

El fichero con la información anterior debe contener el siguiente formato:

sensor,zone,metric,base,taxes,total,products,tickets,currency,date AA:BB:CC:DD:EE:FF,TPV1234,sales,1000,210,1210,5,1,EUR,2021-01-01 10:00:00 AA:BB:CC:DD:EE:FF,TPV0098,sales,1000,170,1170,5,1,PEN,2021-01-01 10:00:00

Seguidamente les presentamos un código de Ejemplo Python para importar el fichero:

# obtenido el token temporal (access_token) podremos realizar llamadas al api api_url = 'https://pipeline.tbretail.com/data/import/sales' headers = { 'Authorization': access_token } # abrir el fichero datos y leerlo data = open('datos.csv','rb').read().decode('utf-8') response = requests.post(api_url, data=data.encode('utf-8'), headers=headers) print (response)

Puede enviar los tickets en tiempo real o peridificados durante el día como le interese. También puede enviar ticket a ticket o bien agrupar los tickets en una línea cuando realiza el envío. Recuerde que si envía las ventas desglosadas como mínimo por horas podrá obtener el ratio de conversión también para ese período de tiempo.

Ejemplo de petición con POSTMAN

Primero informar el content-type

El segundo paso informar los datos del body

Con esto obtendremos el access_token para realizar el envío de los datos y podremos realizar la petición al servidor para enviar los datos.

Ejemplo del json recibido:

{
"id_token": "eyJraWQiOiJiVVwvRm9OZzA0bXVsSF.....",
"access_token": "eyJraWQiOiJcL1ZpYmpJMGs5UUFkWFdMRDRjQktFNGs1MEdoeFJ.....",
"expires_in": 86400,
"token_type": "Bearer"
}

Realizaremos la petiación al servidor, primero informando la autorización con el token obtenido

y en el body informaremos los datos a enviar

Se puede descargar este ejemplo de postamn con la siguiente Colección:

Artículos Relacionados