DOCS

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:

  1. Crear, editar y eliminar la flota de vehículos de la empresa
  2. Crear, editar y eliminar direcciones en el maestro de clientes
  3. Crear un escenario de planificación
  4. Status, visualización y exportación de resultados de una planificación

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


002


Si se tiene una flota con distintas capacidades, es necesario realizar una configuración con las principales características de la flota. Luego, se debe crear un grupo de vehículos.


004

 

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.


005

 

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


007


Si se tiene una lista de clientes con sus direcciones, es recomendable realizar el proceso de configuración del maestro de clientes. En todo caso, el maestro de clientes se va generando automáticamente cuando se van creando escenarios ya que el maestro almacena todas las direcciones para evitar geo-referenciar las direcciones cada vez que se utilicen.

 

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:


008


a. Deposito: seleccionar el deposito desde donde parte la ruta de todos los vehículos.
b. Vehículos: seleccionar la cantidad de vehículos y su capacidad en el caso de no tener configurada una flota de vehículos o seleccionar el grupo de vehículos a utilizar en caso de tener configurada una flota.

 

c. Opciones: Es posible tener distintas condiciones en un escenario de planificación:

  • Volver al deposito: Indica si los vehículos deben volver al deposito después de hacer la entrega de todos los despachos.
  • Asignación Óptima: Corresponde a que el sistema pueda determinar que vehículos hacen los despachos. En caso contrario, cuando se cargan las ordenes se debe asignar un vehículo para cada orden de despacho en la planilla Excel.
  • Múltiples Viajes: corresponde a un parámetro de un escenario que indica si los vehículos están habilitados para dar más de un viaje en un turno de trabajo. En caso positivo se debe definir un tiempo de recarga en minutos que es el tiempo promedio entre que el camión ingresa al deposito y sale nuevamente con los despachos a realizar.

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.


009


Se pueden agregar ordenes de manera manual (1) o de manera masiva (2) para lo cual se cuenta con una plantilla descargable (3) con el formato para cargar las ordenes. Los campos obligatorios para la orden son:

 

  • Código de despacho
  • Dirección, comuna y país o código de dirección (sólo si esta definida previamente en el maestro)
  • Unidades (debe ser coherente con la definición de unidades que se utilizó para la definición de la capacidad de los vehículos)

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:

  • Capacidad de Flota < Cantidad de Unidades a transportar (Obs: Si está activado la opción de Múltiples Viajes no es posible detectar a priori la no factibilidad)
  • Suma de Tiempos de Servicio > Horario de Trabajo x No de vehículos
  • Ventanas horarias no compatibles: las ventanas horarios dentro de un escenario no pueden tener un traslape de horas para que se ejecute de manera correcta. Por ejemplo, no pueden existir en un mismo escenario un cliente que tenga una ventana horaria 9am- 12pm y otro cliente con ventana horaria de 10am a 1pm. En la capacitación se explica mayores detalles de las ventanas horarias compatibles actualmente.

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:

PARÁMETROS

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
}
]
}
]
}

Response Class (Status 200)

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

Response Class (Status 200)

CamposTipoDescripción
status string OK / Error
response JSON[]  
  status string El estado del escenario puede ser:

 

  • Geocoding: cuando está localizando las direcciones.
  • Incomplete: cuando al escenario le faltan datos para ser optimizado.
  • Ready: cuando el escenario está listo para ser optimizado.
  • Queueing: cuando el escenario está a la espera a ser optimizado.
  • Optimizing: cuando el escenario se está optimizando.
  • Canceled: cuando se cancela la optimización.
  • Repairable: cuando hay órdenes que no caben en un camión o no hay suficiente tiempo para ir a dejarlo.
  • Error: cuando existió algún tipo de error en la optimización.
  • Infeasible: cuando no es posible encontrar una solución.
  • Optimized: cuando el escenario está optimizado.
  • Modified: cuando el escenario se modificó desde el editor.
  • Approved: cuando se aprueba la optimización.
  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".

Response Class (Status 200)

CamposTipoDescripció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".

Response Class (Status 200)

CamposTipoDescripció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.

Response Class (Status 200)

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:

  • assigned: tiene los resultados de los vehículos asignados.
  • unassigned: tiene los resultados de los vehiculos sin asignar.
  • infeasible: tiene los resultados inviables.

Response Class (Status 200)

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

PARÁMETROS

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
}
}
]

Response Class (Status 200)

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

Response Class (Status 200)

CamposTipoDescripció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".

Response Class (Status 200)

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.

PARÁMETROS

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

 

Response Class (Status 200)

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"
}
]
}
]
}
]
}
$(document).ready(function() { $('.collapse').on('show.bs.collapse', function() { var id = $(this).attr('id'); $('a[href="#' + id + '"]').closest('.panel-heading').addClass('active-faq'); $('a[href="#' + id + '"] .panel-title span').html(''); }); $('.collapse').on('hide.bs.collapse', function() { var id = $(this).attr('id'); $('a[href="#' + id + '"]').closest('.panel-heading').removeClass('active-faq'); $('a[href="#' + id + '"] .panel-title span').html(''); }); });