Driv.in es un software que permite realizar una planificación óptima de la logística de una empresa que debe realizar despachos a distintos clientes durante una jornada. El sistema es accesible de la página app.driv.in con un nombre de usuario y contraseña que son entregadas por el equipo de soporte de Driv.in.
Después de leer este manual, el usuario estará capacitado para:
TIEMPO DE SERVICIO
Corresponde al tiempo en minutos que se demora en realizar un despacho.
VENTANA HORARIA
Corresponde al rango de horas en que el cliente puede recibir un despacho.
DIRECCIÓN
Corresponde a la dirección donde se despacha a un cliente determinado. Es obligatorio contar con el nombre de la calle y su número, la comuna y el país (Ej, Presidente Errazuriz 4125, Las Condes, Chile). Adicionalmente se puede tener asociado un tiempo de servicio y una ventana horaria para el despacho.
ORDENDES DE DESPACHO
Corresponde a los elementos que la empresa tiene que ir a dejar a sus clientes. Es obligatorio que una orden tenga un código de despacho, una dirección y las unidades (Kg, m3 u otro) a ser despachadas.
VEHÍCULOS
Corresponde a los vehículos que tenga disponible la empresa para realizar los despachos. Es obligatorio que contenga un código (Ej, patente) y una capacidad (Kgs, m3 u otro).
GRUPO DE VEHÍCULOS
Corresponde a un conjunto de vehículos que podrá ser utilizado durante un escenario de planificación.
ESCENARIO DE RUTA
Se define como un escenario de planificación o ruta a una jornada de trabajo donde se realizan despachos a clientes desde un depósito con los vehículos de la empresa. Un escenario comprende la definición de un deposito, un grupo de vehículos, un conjunto de ordenes de despacho y un conjunto de parámetros opcionales.
1. CONFIGURACIÓN DE FLOTA
Para agregar los vehículos, se puede ingresar manualmente a través de la página (1) o ingresar una planilla Excel con las características de la flota (2). En la misma página está disponible la plantilla con el formato en que se debe cargar cada vehículo (3).
Los campos obligatorios son código, descripción y la capacidad del vehículo. La capacidad esta medida en “unidades” las que pueden ser kilogramos, metros cúbicos, o cualquier otra unidad que sea la que mejor represente a la carga que es transportada por la empresa. Hay que tener especial cuidado que estas unidades sean las mismas que se encuentran en la definición de cada orden despacho.
Para crear un grupo, hay que seleccionar desde el menú principal Vehiculos/Grupo de Vehiculos, poner un nombre para el grupo y seleccionar los vehículos que pertenecen a este grupo. Se pueden crear varios grupos los cuales pueden compartir vehículos.
En cualquier instancia se pueden editar los vehículos pero hay que considerar que si el vehículo fue utilizado en algún escenario anterior, éste se podrá ver afectado en sus resultados. También es posible editar los grupos de vehículos, sólo afectando a los futuros escenarios.
2. CONFIGURACIÓN DE DIRECCIONES
Al igual que en la configuración de vehículos, en la página del maestro de direcciones se pueden agregar manualmente (1) o masivamente (2) para lo cual está disponible una plantilla con el formato de las direcciones (3).
Los campos obligatorios de los clientes son Nombre de calle y número, Comuna, País. Adicionalmente se recomienda tener un código para cliente y/o ubicación para evitar errores por cambios involuntarios en la dirección. Si el cliente tiene un tiempo de servicio especifico y/o una ventana horaria en que puede recibir los pedidos también es recomendable configurar en este maestro las que serán utilizadas cada vez que se cree un escenario con ese código de cliente.
Cuando se cargan las direcciones de manera masiva, es posible que el sistema no encuentre las coordenadas exactas de la dirección del cliente. Cuando suceda esto, la dirección se mostrará en color rojo y el usuario tendrá que editar la dirección y luego confirmar la ubicación exacta en el mapa. Las direcciones NO geo-referenciadas no permiten que un escenario que las contenga pueda ser optimizado.
En cualquier instancia se puede modificar o eliminar una dirección pero hay que considerar que si la dirección fue utilizada en algún escenario anterior, éste se podrá ver afectado en sus resultados.
3. CREAR UN ESCENARIO DE PLANIFICACIÓN
Para crear un escenario de planificación, hay que presionar en el menú principal “Nueva Ruta”.
La primera página consiste en:
c. Opciones: Es posible tener distintas condiciones en un escenario de planificación:
d. Horario de trabajo: hay que seleccionar un horario de trabajo en el cual se realizan los despachos. Es posible que al tener definidas ventanas horarias en el maestro de direcciones, éstas se puedan ver truncadas por el horario de trabajo. Por ejemplo, si un cliente tiene una ventana horaria de 8am a 11am y el horario de trabajo es de 9am a 7pm, este cliente va a ver modificada su ventana horaria de 9am a 11am. Adicional a esto, si un cliente no tiene definida una ventana horaria de manera individual ni en el maestro de direcciones, podrá ser despachados en cualquier momento dentro del horario de trabajo aquí definido.
e. Tiempo de servicio: es el tiempo de servicio que tendrán aquellos despachos que no tengan definido un tiempo de servicio definido de manera individual ni en el maestro de direcciones.
En una segunda página, se deben cargar las ordenes de despacho al escenario.
Adicionalmente, se pueden cargar otros parámetros como tiempo de servicio o ventanas horarios en la misma orden. Éstos últimos tendrán prioridad sobre los definidos en el maestro de direcciones y se utilizaran sólo en este escenario. En el caso, en que una orden no venga con estos parámetros y tampoco estén definidos en el maestro de direcciones, los valores que tomaran son los definidos por default en la primera página de creación de escenarios.
En el caso en que la orden no este asociada a una dirección geo-referenciada o el sistema no pueda encontrar las coordenadas exactas de la dirección entregada, la orden aparecerá en rojo y el escenario no podrá ser optimizado hasta que la dirección se haya editado y confirmado la ubicación exacta de la dirección.
Una vez definido todo lo anterior es posible guardar el escenario y optimizar para encontrar una planificación óptima.
4. STATUS, VISUALIZACIÓN Y EXPORTACIÓN DE RESULTADOS DE UNA PLANIFICACIÓN
Al crear un escenario, éste puede tener varios status.
Listo para optimizar: corresponde a que es posible optimizar dado los parámetros entregados.
Incompleto: quiere decir que existen direcciones que no tienen coordenadas y no es posible de optimizar. Para solucionar esto, hay que editar el escenario y modificar o eliminar aquellas direcciones que estén aun en rojo.
Reparable: quiere decir que existen algunas ordenes que no es posible de satisfacer con las condiciones del escenario. Por ejemplo, una orden que exceda la máxima capacidad de un camión o que la dirección de despacho no permita realizar el despacho en el horario de trabajo indicado. Al presionar reparar, el sistema excluye de la solución estas ordenes “no factibles” y continua con la optimización.
No factible: Existen algunas condiciones bajo las cuales el sistema no puede encontrar una solución óptima. Dentro de las principales causas se encuentran:
Optimizado: quiere decir que se encontró una solución óptima. Si por las características del escenario no es posible de satisfacer todas las restricciones, el sistema muestra en camiones adicionales aquellas ordenes que no se pueden incorporar al escenario.
Cuando el escenario se encuentra “Optimizado”, es posible de visualizar los resultados de la planificación. Se pueden ver los camiones utilizados, los kilómetros recorridos, los tiempos estimados de arribo de los despachos y otros indicadores del escenario.
El resultado es exportable a una planilla Excel y a un archivo PDF para su impresión en papel.
El sistema cuenta con un soporte remoto mediante un chat habilitado en la parte inferior derecha por el cual se podrán realizar todas las consultas las que serán respondidas a la brevedad posible.
En caso de no poder acceder a la página, requerir capacitación adicional o capacitación a nuevos usuarios, se puede enviar un correo a contacto@driv.in y se atenderá a la brevedad el requerimiento.
Driv.in es un software que permite realizar una planificación óptima de la logística de una empresa que debe realizar despachos a distintos clientes durante una jornada.
Para comenzar a utilizar esta API se recomienda, en primer lugar, leer el manual de usuario para una mejor comprensión de los conceptos a utilizar en esta descripción.
Este conjunto de APIs permite que a través de distintas acciones se puedan:
1. Crear escenarios,
2. Consultar el status de un escenario,
3. Optimizar escenarios,
4. Obtener resultados del escenario, y
5. Editar algunas características de la flota.
Para poder acceder a las acciones descritas se requieren los siguientes headers: X-API-Key y Content-Type: application/json. Para obtener un API key diríjase a ops@driv.in
El proceso normal de utilización de las API es el siguiente:
1. Generar un escenario (.../scenarios)
2. Consultar el status, hasta que la respuesta sea "Ready" (.../status)
3. Mandar a optimizar (.../optimize)
4. Consultar el status, hasta que la respuesta sea "Optimized" (.../status)
5. Obtener los resultados (.../results)
A continuación, se describen las distintas acciones, sus parámetros y respuestas.
POST
https://app.driv.in/api/external/v1/scenarios
Mediante esta acción se pueden crear escenarios. El parámetro es del tipo "body".
En la respuesta se obtiene un token que posteriormente permite identificar el escenario en las siguientes acciones:
Campos | Tipo | Descripción |
---|---|---|
description | string | Nombre del escenario |
date | string | Fecha del escenario en formato "yyyy-mm-dd" |
start | string | Hora de inicio de la jornada de trabajo "hh:mm" |
end | string | Hora de término de la jornada de trabajo "hh:mm" |
return_trip | boolean optional | Especifica si los vehículos deben retornar al deposito al finalizar las entregas, default=TRUE |
multiple_trips | booleanoptional | Permite a la flota realizar más de un viaje durante la jornada, default=FALSE |
reload_time | integeroptional | Tiempo en minutos que se tarda en recargar un vehículo cuando puede hacer multiples viajes, requerido si multiple_trips=TRUE |
deposit | JSON[] | Lugar desde donde se inician las rutas de los vehículos |
code | stringoptional | Código del depósito |
description | stringoptional | Descripción |
address | string | Dirección del depósito |
city | string | Comuna del depósito |
country | string | País del depósito |
lat | number | Latitud en grados |
lng | number | Longitud en grados |
fleet | JSON[] | Conjunto que define las características de los vehículos que se utilizarán en el escenario |
code | string | Código que identifica al vehículo |
description | stringoptional | Información extra relacionada con el vehículo |
capacity_units | integer | Capacidad del vehículo en unidades |
capacity_units_2 | integeroptional | Capacidad secundaria del vehiculo en unidades |
tags | stringoptional | Se utiliza para definir caractéristicas que tiene el vehiculo. Puede ser más de una y van separadas por comas. |
clients | JSON[] | Conjunto que define las características de las ordenes que se entregarán a los clientes |
code | stringoptional | Código que identifica a la dirección o cliente |
address | string | Dirección |
reference | stringoptional | Referencia |
city | string | Comuna |
country | string | País |
lat | numberoptional | Latitud en grados |
lng | numberoptional | Longitud en grados |
service_time | integer | Tiempo en minutos que demora una entrega en esta dirección |
timewindow | JSON[]optional | |
start | string | Hora desde la que se permite hacer la entrega en esta dirección "hh:mm" |
end | string |
Hora hasta la que se permite hacer la entrega en esta dirección "hh:mm" |
tags | stringoptional | Se utiliza para definir caractéristicas que debe tener el vehiculo que entrega las ordenes en esta dirección. Puede ser más de una y van separadas por comas. |
orders | JSON[] | |
code | string | Código que identifica a la orden |
description_code | stringoptional | Código del producto de la orden (SKU) |
description | stringoptional | Descripción del producto de la orden |
units | number | Cantidad en unidades de la orden |
units_2 | numberoptional | Cantidad en unidades secundarias de la orden |
{
"description": "Supermercados 30/09/2015",
"date": "2015-09-30",
"start": "07:00",
"end": "18:00",
"return_trip": TRUE,
"multiple_trips": FALSE,
"reload_time": 0,
"deposit": {
"code": "D1",
"description": "Bodega Principal Stgo",
"address": "Presidente Errázuriz 4125",
"city": "Las Condes",
"country": "Chile",
"lat": -33.4199,
"lng": -70.5861,
},
"fleet": [
{
"code": "BHGF78",
"description": "Camíon 1",
"capacity_units": 5000,
"capacity_units_2": 23,
"tags": "Pequeño,Congelado"
}
],
"clients": [
{
"code": "A103",
"address": "José Pedro Alessandri 1166",
"reference": "Jumbo Ñuñoa",
"city": "Ñuñoa",
"country": "Chile",
"lat": -33.464095200,
"lng": -70.598207700,
"service_time": 90,
"time_window": {
"start": "07:00",
"end": "10:00"
},
"tags": "Pequeño",
"orders": [
{
"code": "567789",
"description_code": "9786",
"description": "Yogurt Soprole",
"units": 234.5,
"units_2": 2
}
]
}
]
}
Campos | Tipo | Descripción |
---|---|---|
status | string | OK / Error |
response | JSON[] | |
scenario_token | string | token que identifica al escenario para posteriores acciones (sólo si status = OK) |
description | string | mensaje con el error (sólo si status = Error) |
{
"status": "OK",
"response": {
"scenario_token": "5a696642-5363-4c6a-89fb-bafa22a4e92e"
}
}
GET
https://app.driv.in/api/external/v1/scenarios/{scenarioToken}/status
Mediante esta acción se puede consultar el estado de un escenario. El parámetro es del tipo "path".
Campos | Tipo | Descripción |
---|---|---|
status | string | OK / Error |
response | JSON[] | |
status | string | El estado del escenario puede ser:
|
percentage | integer | Representa el porcentaje de avance en el caso de estar en el estado "Optimizing" |
description | string | Contiene un mensaje en caso de error en la consulta o en el estado del escenario |
{
"status": "OK",
"response": {
"status": "Optimizing",
"percentage": 35,
}
}
POST
https://app.driv.in/api/external/v1/scenarios/{scenarioToken}/optimize
Mediante esta acción se puede mandar a optimizar el escenario que corresponde a ScenarioToken. Sólo se podrá optimizar escenarios con el estado "Ready". El parámetro es del tipo "path".
Campos | Tipo | Descripción |
---|---|---|
status | string | OK/ Error |
response | JSON[] | |
scenario_token | string | Se devuelve el token del escenario (sólo si status = OK) |
description | string | mensaje con el error (sólo si status = Error) |
{
"status": "OK",
"response": {
"scenario_token": "5a696642-5363-4c6a-89fb-bafa22a4e92e"
}
}
POST
https://app.driv.in/api/external/v1/scenarios/{scenarioToken}/repair
Mediante esta acción se puede reparar el escenario que corresponde a ScenarioToken. Sólo se podrá reparar escenarios con el estado "Repairable". El parámetro es del tipo "path".
Campos | Tipo | Descripción |
---|---|---|
status | string | OK / Error |
response | JSON[] | |
scenario_token | string | Se devuelve el token del escenario (sólo si status = OK) |
description | string | mensaje con el error (sólo si status = Error) |
{
"status": "OK",
"response": {
"scenario_token": "5a696642-5363-4c6a-89fb-bafa22a4e92e"
}
}
GET
https://app.driv.in/api/external/v1/scenarios/{scenarioToken}/results
Mediante esta acción se puede obtener el resultado de la optimización de un escenario. Para obtener resultados, el status del escenario debe ser "Optimized", "Modified" o "Approved". El parámetro es del tipo "path". Todas las ordenes que fueron desasignadas o son inviables son agrupadas en un vehículo con fleet nulo.
Campos | Tipo | Descripción |
---|---|---|
status | string | OK / Error |
response | JSON[] | JSON que contiene si status = OK, un conjunto de vehículos y las rutas asociadas. Sino, contiene un campo "description" |
fleet | string | Código que identifica al vehículo |
orders | JSON[] | Conjunto de ordenes asociadas al vehículo |
position | integer | Posición en la cual se debe entregar la orden |
order | JSON[] | Conjunto que contiene información de la orden |
code | string | Código asociado a la orden |
description_code | string optional | Código de un producto de la orden (SKU) |
description | stringoptional | Descripción del producto de la orden |
units | integeroptional | Unidades del SKU |
client | JSON[] | Información del cliente asociado a la orden |
code | stringoptional | Código asociado a la dirección |
address | string | Dirección del cliente |
reference | stringoptional | Referencia |
city | string | Comuna |
country | string | País |
lat | number | Latitud en grados |
lng | number | Longitud en grados |
service_time | integer | Tiempo en minutos que demora una entrega en esta dirección |
time_window | JSON[]optional | |
start | string | Hora desde la que se permite hacer la entrega en esta dirección "hh:mm" |
end | string | Hora hasta la que se permite hacer la entrega en esta dirección "hh:mm" |
eta | string | Hora estimada de entrega de la orden "hh:mm" |
description | string | mensaje con el error (sólo si status = Error) |
{
"status": "OK",
"response": [
{
"fleet": "BHGF78",
"orders": [
{
"position": 1,
"order": {
"code": "567789",
"description_code": "9786",
"description": "Yogurt Soprole",
"units": 234.5
},
"client": {
"code": "A103",
"address": "José Pedro Alessandri 1166",
"reference": "Jumbo Ñuñoa",
"city": "Ñuñoa",
"country": "Chile",
"lat": -33.464095200,
"lng": -70.598207700,
"service_time": 90,
"time_window": {
"start": "07:00",
"end": "10:00"
}
},
"eta": "08:14"
}
]
}
]
}
GET
https://app.driv.in/api/external/v1/scenarios/{scenarioToken}/grouped_results
Mediante esta acción se puede obtener el resultado de la optimización de un escenario con las ordenes agrupadas por cliente. Para obtener resultados, el status del escenario debe ser "Optimized", "Modified" o "Approved". El parámetro es del tipo "path". La respuesta tiene tres partes:
Campos | Tipo | Descripción |
---|---|---|
status | string | OK / Error |
response | JSON[] | Si status = OK, contiene tres arreglos (assigned, unassigned, infeasible) cada uno con un conjunto de vehículos, clientes y ordenes. Sino, contiene un campo "description" |
assigned | JSON[] | Conjunto de vehículos asignados |
fleet | string | Código que identifica al vehículo |
results | JSON[] | Conjunto de clientes con su eta, posición y ordenes |
eta | string | Hora estimada de entrega de la orden "hh:mm" |
position | integer | Posición en la cual se debe entregar la orden |
client | Información del cliente asociado a la orden | |
code | stringoptional | Código asociado a la dirección |
address | string | Dirección del cliente |
reference | stringoptional | Referencia |
city | string | Comuna |
country | string | País |
lat | number | Latitud en grados |
lng | number | Longitud en grados |
service_time | integer | Tiempo en minutos que demora una entrega en esta dirección |
time_window | JSON[]optional | |
start | string | Hora desde la que se permite hacer la entrega en esta dirección "hh:mm" |
end | string | Hora hasta la que se permite hacer la entrega en esta dirección "hh:mm" |
orders | JSON[] | Conjunto de ordenes asociadas al cliente |
code | string | Código asociado a la orden |
description_code | string optional | Código de un producto de la orden (SKU) |
description | stringoptional | Descripción del producto de la orden |
units | integeroptional | Unidades del SKU |
unassigned | JSON[] | Conjunto de clientes sin asignación de vehiculo |
fleet | string | Para este caso todos estos valores son null |
results | JSON[] | Descripción del cliente y sus ordenes |
client | Información del cliente asociado a la orden | |
code | stringoptional | Código asociado a la dirección |
address | string | Dirección del cliente |
reference | stringoptional | Referencia |
city | string | Comuna |
country | string | País |
lat | number | Latitud en grados |
lng | number | Longitud en grados |
service_time | integer | Tiempo en minutos que demora una entrega en esta dirección |
time_window | JSON[]optional | |
start | string | Hora desde la que se permite hacer la entrega en esta dirección "hh:mm" |
end | string | Hora hasta la que se permite hacer la entrega en esta dirección "hh:mm" |
orders | JSON[] | Conjunto de ordenes asociadas al cliente |
code | string | Código asociado a la orden |
description_code | string optional | Código de un producto de la orden (SKU) |
description | stringoptional | Descripción del producto de la orden |
units | integeroptional | Unidades del SKU |
infeasible | JSON[] | Conjunto de clientes con ordenes no factobles |
fleet | string | Para este caso este valor es null |
results | JSON[] | Descripción del cliente y sus ordenes |
client | Información del cliente asociado a la orden | |
code | stringoptional | Código asociado a la dirección |
address | string | Dirección del cliente |
reference | stringoptional | Referencia |
city | string | Comuna |
country | string | País |
lat | number | Latitud en grados |
lng | number | Longitud en grados |
service_time | integer | Tiempo en minutos que demora una entrega en esta dirección |
time_window | JSON[]optional | |
start | string | Hora desde la que se permite hacer la entrega en esta dirección "hh:mm" |
end | string | Hora hasta la que se permite hacer la entrega en esta dirección "hh:mm" |
orders | JSON[] | Conjunto de ordenes asociadas al cliente |
code | string | Código asociado a la orden |
description_code | string optional | Código de un producto de la orden (SKU) |
description | stringoptional | Descripción del producto de la orden |
units | integeroptional | Unidades del SKU |
{
"status": "OK",
"response": {
"assigned": [
{
"fleet": "ABCD34",
"results": [
{
"eta": "06:54",
"position": 0,
"client": {
"code": "ADD36",
"address": "VARGAS TORRES 56",
"reference": "Oficina Empresas ABC",
"city": "Santiago",
"country": "Chile",
"lat": -33.407879600,
"lng": -70.555796000,
"service_time": 30,
"time_window": {
"start": "06:30",
"end": "17:30"
}
},
"orders": [
{
"code": "ORD7105",
"description_code": "9786",
"description": "Yogurt Soprole",
"units": 500
}
]
}
]
}
],
"unassigned": [
{
"fleet": null,
"results": [
{
"client": {
"code": "ADD98",
"address": "PRESIDENTE RIESCO 5711",
"reference": "Oficina Central Big",
"city": "Las Condes",
"country": "Chile",
"lat": -33.407879600,
"lng": -70.555796000,
"service_time": 30,
"time_window": {
"start": "06:30",
"end": "17:30"
}
},
"orders": [
{
"code": "ORD098",
"description_code": "9745",
"description": "Hojas Oficio",
"units": 1500
}
]
}
]
}
],
"infeasible": [
{
"fleet": null,
"results": [
{
"client": {
"code": "gm001",
"address": "SEGUNDA CONSTITUYENTE 78",
"reference": "CD Smart",
"city": "San Bernardo",
"country": "Chile",
"lat": -33.407879600,
"lng": -70.555796000,
"service_time": 30,
"time_window": {
"start": "06:30",
"end": "17:30"
}
},
"orders": [
{
"code": "ORD6782",
"description_code": "9213",
"description": "Smartphone",
"units": 4500
}
]
}
]
}
]
}
}
PATCH
https://app.driv.in/api/external/v1/scenarios/{scenarioToken}/routes
Mediante esta acción se puede cambiar un vehiculo asignado a una ruta. Los parametros son del tipo "path" (scenariotoken) y "body".
Campos | Tipo | Descripción |
---|---|---|
RouteEdit | ARRAY[] | Arreglo de cambios de vehículos |
target_fleet | JSON[] | Vehículo que se desea cambiar |
code | string | Código que identifica al vehículo |
description | string | Información extra relacionada con el vehículo |
capacity_units | integer | Capacidad del Vehículo en unidades |
replacement_fleet | JSON[] | Vehículo por el cual se desea cambiar |
code | string | Código que identifica al vehículo |
description | string | Información extra relacionada con el vehículo |
capacity_units | integer | Capacidad del Vehículo en unidades |
[
{
"target_fleet": {
"code": "BHGF78",
"description": "Camión 1",
"capacity_units": 5000
},
"replacement_fleet": {
"code": "JHYI66",
"description": "Camión 2",
"capacity_units": 6000
}
}
]
Campos | Tipo | Descripción |
---|---|---|
status | string | OK / Error |
response | JSON[] | |
scenario_token | string | token que identifica al escenario para posteriores acciones (sólo si status = OK) |
description | string | mensaje con el error (sólo si status = Error) |
{
"status": "OK",
"response": {
"scenario_token": "5a696642-5363-4c6a-89fb-bafa22a4e92e"
}
}
DELETE
https://app.driv.in/api/external/v1/scenarios/{scenarioToken}/delete
Mediante esta acción se puede eliminar un escenario. El parámetro es del tipo "path".
Campos | Tipo | Descripción |
---|---|---|
status | string | OK / Error |
response | JSON[] | |
description | string | mensaje confirmando la eliminación o con el error si status = Error |
{
"status": "OK",
"response": {
"description": "Scenario deleted"
}
}
GET
https://app.driv.in/api/external/v1/scenarios/{scenarioToken}/infeasibles
Mediante esta acción se pueden obtener todas las ordenes no factibles de un escenario. El parámetro es del tipo "path".
Campos | Tipo | Descripción |
---|---|---|
status | string | OK / Error |
response | JSON[] | JSON que contiene si status = OK, un conjunto de ordenes no factibles asociadas al escenario. Sino, contiene un campo "description" |
order | JSON[] | Conjunto que contiene información de la orden |
code | string | Código asociado a la orden |
description_code | string optional | Código de un producto de la orden (SKU) |
description | stringoptional | Descripción del producto de la orden |
units | integeroptional | Unidades del SKU |
client | JSON[] | Información del cliente asociado a la orden |
code | stringoptional | Código asociado a la dirección |
address | string | Dirección del cliente |
reference | stringoptional | Referencia |
city | string | Comuna |
country | string | País |
lat | number | Latitud en grados |
lng | number | Longitud en grados |
service_time | integer | Tiempo en minutos que demora una entrega en esta dirección |
time_window | JSON[]optional | |
start | string | Hora desde la que se permite hacer la entrega en esta dirección "hh:mm" |
end | string | Hora hasta la que se permite hacer la entrega en esta dirección "hh:mm" |
description | string | mensaje con el error (sólo si status = Error) |
{
"status": "OK",
"response": [
{
"order": {
"code": "50034721653",
"description_code": "1238228",
"description": "Pechuga deshuesada de pollo",
"units": 4500
},
"client": {
"code": "CO003",
"address": "ADD354",
"reference": "Supermercado Express"
"city": "Santiago",
"country": "Chile",
"lat": -33.419898987,
"lng": -70.586502075,
"service_time": 30,
"time_window": {
"start": "06:30",
"end": "17:30"
}
}
}
]
}
GET
https://app.driv.in/api/external/v1/pods?params
Mediante esta acción se pueden obtener todas las ordenes no factibles de un escenario. El parámetro es del tipo "path". El objeto params está formado por filtros concatenados por "&".
Por ejemplo: https://app.driv.in/api/external/v1/pods?start_date=2016-06-01&end_date=2016-06-30&order_status=rejected&order_code=123456&order_code=123457.
Campos | Tipo | Descripción |
---|---|---|
start_date | string | Permite filtrar por fecha de inicio en formato "yyyy-mm-dd" |
end_date | string | Permite filtrar por fecha de término en formato "yyyy-mm-dd" |
vehicle_code | string | Permite filtrar por código de vehículo |
address_code | string | Permite filtrar por código de cliente |
order_code | string | Permite filtrar por código de orden |
order_status | string | Permite filtrar por el estado de la orden. Puede ser "pending", "approved", "partial", "rejected". |
Campos | Tipo | Descripción |
---|---|---|
status | string | OK / Error |
response | JSON[] | JSON que contiene si status = OK, un conjunto de direcciones. Sino, contiene un campo "description" |
planned_date | string | Fecha planificada de entrega |
description | string | Nombre del escenario |
vehicle_code | string | Vehículo asociado a la entrega |
address_name | string | Nombre de la dirección de la entrega |
address_code | string | Código de la dirección de la entrega |
address_address_1 | string | Dirección de la entrega |
address_customer_name | string | Nombre del cliente asociado a la entrega |
address_lat | number | Latitud de la dirección |
address_lng | number | Longitud de la dirección |
planned_service_time | number | Tiempo de servicio planificado |
eta | string | Hora estimada de entrega "hh:mm" |
time_window | JSON[] | |
start | string | Hora desde la que se permite hacer la entrega en esta dirección "hh:mm" |
end | string | Hora hasta la que se permite hacer la entrega en esta dirección "hh:mm" |
tracked_arrival | ISODate | Fecha y hora en que se detectó el inicio de la parada en esta dirección |
tracked_leave | ISODate | Fecha y hora en que se detectó el fin de la parada en esta dirección |
tracked_service_time | integer | Tiempo de servicio real |
orders | JSON[] | |
code | string | Código de la orden |
pod_arrival | ISODate | Fecha y hora en que se hizo la prueba de entrega |
pod_lat | number | Latitud donde se hizo la prueba de entrega |
pod_lng | number | Longitud donde se hizo la prueba de entrega |
status | string | Estado de la orden (pending, approved,partial o rejected) |
reason | string | Motivo del rechazo |
items | JSON[] | |
code | string | Código del producto |
description | string | Descripción del producto |
units | number | Unidades del producto |
delivered_units | number | Unidades efectivamente entregadas |
status | string | Estado del producto (pending, approved,partial o rejected) |
{
"status": "OK",
"response":[
{
"planned_date":"2016-11-10",
"description":"Ruta 09-11-2016",
"vehicle_code":"CTPP-24",
"address_name":"Plaza Las lilas",
"address_code":"76084968-500",
"address_address_1":"LOS JAZMINEZ 6205",
"address_customer_name":"Supermercados Mundial",
"address_lat":-33.4429709,
"address_lng":-70.7234453,
"planned_service_time":30,
"eta":"14:29",
"time_window":{
"start":"09:00",
"end":"19:00"
},
"tracked_arrival":"2016-10-07T12:43:08-03:00"
,
"tracked_leave":"2016-10-07T13:23:15-03:00"
,
"tracked_service_time":25.8,
"orders":[
{
"code":"340630",
"pod_arrival":"2016-10-07T12:55:34-03:00",
"pod_lat":-33.4429709,
"pod_lng":-70.723456,
"status":"partial",
"reason":"Producto dañado",
"items":[
{
"code":"I92",
"description":"Item 92",
"units":10,
"delivered_units":10,
"status":"approved"
},
{
"code":"I93",
"description":"Item 93",
"units":4,
"delivered_units":4,
"status":"approved"
},
{
"code":"I94",
"description":"Item 94",
"units":11,
"delivered_units":10,
"status":"partial"
},
{
"code":"I96",
"description":"Item 96",
"units":15,
"delivered_units":13,
"status":"partial"
}
]
}
]
}
]
}