Envío de rutas por API

Otros

Descarga en PDF la integración de envío de rutas por API

Integración de rutas por API

La importación de contenido mediante API requiere de la creación por parte del usuario de un token de acceso. Este token es un string que identifica a un usuario dentro de una aplicación o servicio, para realizar llamadas a la API.

1. Creación del token

Para obtener este token de acceso tendrá que tener un usuario creado en nuestra plataforma con el rol de técnico. En el momento de la creación de la cuenta en Polpoo se creará automáticamente un usuario técnico. Las credenciales de dicho usuario serán enviadas en el correo de bienvenida. En caso de querer crear otra cuenta de usuario de tipo técnico, hay que ir a la sección de Gestión y en la pestaña de Usuarios clicar en + Crear usuario y rellenar todos los campos; indicando el rol de usuario como técnico.

Los parámetros de conexión de la conexión API son los siguientes:

URL: https://restapi.polpoo.com/api/oauth/token_integrator

MÉTODO: POST

CONTENIDO: application/json

Para obtener el token de acceso se deberá hacer una petición API con el siguiente esquema de código

{

 "client_id": 1,
 "client_secret": "tT96kecNtYVf92dvRfQ1Ikj6sjsx5tKZzaCCpHun",
 "username":  "integration@company.com",
 "password":  "secret_password",
 "grant_type": "password"
}

Los campos client_id, client_secret y grant_type son constantes, es decir, no deben modificarse en ningún caso. Por otra parte, los campos username y password sí que son modificables, y deberán rellenarse con los datos del usuario creado anteriormente como técnico. Este usuario os lo facilitará Polpoo.

2. Respuesta de la API

Una vez establecida la conexión y hecha la petición a la API, se recibirá la respuesta por parte de nuestro sistema con el token de acceso.

{

 "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiI",
 "refresh_token": "def50200388a50a45925d65",
 "expires_in": 86400,
 "token_type": "Bearer",
 "username": "integration@company.com"
}

3. Enviar rutas

Los parámetros de conexión de la conexión API son los siguientes:

URL: https://restapi.polpoo.com/api/integration_session/delivery_point

MÉTODO: POST

CONTENIDO: application/json

4. Especificaciones de los campos

Es importante que la información de los campos no contenga comillas dobles (p.e: «Frutería «El sol»»), ya que los ficheros .json trabajan con comillas dobles para delimitar los campos y la información. En caso de tener algún dato de este estilo, la integración no se realizará correctamente. Cualquier otro símbolo especial es aceptado.

 

Se definen los campos que pertenecen a este fichero de la siguiente manera:

 

* La información obligatoria está marcada en rojo. En caso de que no se tenga la información de un campo opcional, no se tiene que añadir la etiqueta en el json.

 

*La información recomendada está marcada en azul. No son obligatorios para la estructura del fichero, pero sí recomendable para el correcto funcionamiento de Polpoo.

name string – obligatorio
Nombre de la importación.


description string – obligatorio
Descripción de la importación.


dateSession datetime – obligatorio

Fecha en la que se genera el fichero.


deliveryPoints.id string – obligatorio
Identificador único del cliente.


deliveryPoints.name string – obligatorio

Nombre del cliente.


deliveryPoints.address string – obligatorio

Dirección del cliente.


deliveryPoints.deliveryZoneId string – obligatorio
Zona de reparto a la que pertenece el cliente.


deliveryPoints.deliveryWindow.start integer  recomendado

Hora en la que se puede empezar a repartir en un cliente (segundos).


deliveryPoints.deliveryWindow.end integer   recomendado
Hora en la que ya no se puede repartir en un cliente (segundos).


deliveryPoints.population string   recomendado
Población del cliente.


deliveryPoints.demand integer   recomendado
Carga que ocupa el pedido de un cliente.


deliveryPoints.volumetric decimal   recomendado

Volumen (metros cúbicos) que ocupa el pedido de un cliente.


deliveryPoints.postalCode string   recomendado

Código postal del cliente.


deliveryPoints.phoneNumber string   recomendado
Número de teléfono del cliente.


deliveryPoints.email string   recomendado
Correo electrónico del cliente.


deliveryPoints.deliveryType string  recomendado

Tipo de servicio («shipment» = entrega // «pickup» = recogida). En caso de no enviarse, se marcará como entrega.


deliveryPoints.orderNumber string   recomendado

Número del pedido referente al punto de entrega.


deliveryPoints.deliveryNotes string   recomendado

Observaciones acerca de la entrega del pedido.


deliveryPoints.service.code string  obligatorio si se envía un servicio

Código de la especificación de servicio.


deliveryPoints.service.name string  obligatorio si se envía un servicio

Nombre de la especificación de servicio.


deliveryPoints.box  integer
Número de cajas del pedido de un cliente.


deliveryPoints.serviceTime integer

Tiempo estimado para realizar la descarga en el cliente (segundos).


deliveryPoints.idERP string
Identificador único del vehículo en el ERP.
*Sólo para la automatización completa de Polpoo.


deliveryPoints.leadTime integer
Tiempo de entrega antes de la hora de apertura del cliente (segundos).


deliveryPoints.sendDeliveryNoteMail boolean

Si es true, se mandará el albarán por correo electrónico.


deliveryPoints.deliveryIdentifier string

Identificador de la entrega para asignación correcta del albarán. Vinculación con el mismo campo en albaranes.


deliveryPoints.allowDelayTime boolean

Si es true, se activará el tiempo de retraso para este cliente.
*Obligatorio tener activada esta configuración en Polpoo.


deliveryPoints.delayType string

Nombre del tiempo de retraso.
*Obligatorio tener activada esta configuración en Polpoo.


deliveryPoints.deliveryZoneSpecification.code string  obligatorio si se envía una esp. de ruta

Código de la especificación de ruta.


deliveryPoints.deliveryZoneSpecification.name string – obligatorio si se envía una esp. de ruta

Nombre de la especificación de ruta.


deliveryPoints.activateDeliverySchedule boolean

Si es true, se activará la especificación horarias por días y franjas del cliente.


deliveryPoints.deliveryScheduleDay.isActive boolean

Si es true, este día estará abierto. Si se manda false, este día estará cerrado.


deliveryPoints.deliveryScheduleDay.intDay integer
Día de la semana (1 = Lunes, 2 = Martes….).


deliveryPoints.deliveryScheduleDay.fixedDelivery boolean

Si es true, este día tendrá entrega fija y se incluirá en al ruta aunque no se envíe por integración.


deliveryPoints.deliveryScheduleDay.hours.timeStart integer
Hora de inicio de la franja horaria de entrega.


deliveryPoints.deliveryScheduleDay.hours.timeEnd integer
Hora de finalización de la franja horaria de entrega.  


asignationDate datetime
Fecha de la asignación automática.
*Sólo para la automatización completa de Polpoo.


vehicle.idERP string
Identificador único del vehículo en el ERP.
*Sólo para la automatización completa de Polpoo.


vehicle.userERP string
Identificador único del usuario en el ERP.
*Sólo para la automatización completa de evaluación.

5. Ejemplos y descargables

{
	"name": "Demo clientes final - Ruta Zonas",
	"description": "Prueba demo 1",
	"dateSession": "2024-04-11",
	"deliveryPoints": [
		{
			"id": "1050",
			"name": "Bar Xaloc",
			"address": "Carrer del Torrent Fondo, 08840 Viladecans, Barcelona",
			"deliveryZoneId": "Ruta-1",
			"deliveryWindow": {
				"start": 21600,
				"end": 36000
			},
			"serviceTime": 120,
			"demand": 145,
			"volumetric": 2.5,
			"phoneNumber": "34666555666",
			"email": "prueba@prueba.com",
			"postalCode": "08840",
			"population": "Viladecans",
			"deliveryType": "shipment",
			"orderNumber": "ORD-654321",
			"deliveryNotes": "Entrega programada para la mañana"
					
		}
	]
}