Cambios en API (changelog)

Jared 🙈
Jared 🙈
Last updated 

Mayo 21, 2022


Parámetro para filtrar por cualquier campo de fecha según cada objeto.

En los parámetros de la query se podrá agregar la llave 'filterWithDate' con el valor de alguno de los campos de fecha del objeto para poder filtrar según ese dato. Se podría entonces filtrar por ejemplo, por la fecha de creación o la fecha de la última actualización del objeto.
https://app.handy.la/api/v2/{objecto}?filterWithDate=lastUpdated


Endoint para obtener un producto específico de una lista de precios.
GET /api/v2/priceList/{priceListCode}/product/{productCode}

Abril 1, 2022


Endpoint para obtener datos generales de la compañía.

Se mostrará el nombre de la empresa, moneda, unidad de producto y el status de la suscripción.
{
  "subscriptionStatus": "ACTIVE",
  "company": "Handy",
  "currency": "MXN",
  "productUnit": "PZA"
}


Obtener los ids de las ventas de las rutas cerradas

Al agregar este parámetro solo se regresarán rutas cerradas
https://app.handy.la/api/v2/route?filterWithDate=dateClosed&start=${startDate}&end={endDate}


Obtener solo rutas cerradas o solo rutas abiertas.

Agregamos un nuevo parámetro para filtrar las rutas por su status.

Obtener solo rutas abiertas
https://app.handy.la/api/v2/route?closed=false

Obtener solo rutas cerradas
https://app.handy.la/api/v2/route?closed=true

Si no se incluye este parámetro se obtendrán todas las rutas, sin importar su status.


Filtrar rutas por fecha de liquidación

Ahora ya puedes filtrar las rutas por la fecha en que fueron cerradas, solo es necesario agregar el parámetro de filterWithDate con el valor de dateClosed

Ejemplo:
https://app.handy.la/api/v2/route?includeSalesOrders=true&filterWithDate=dateClosed&start=01/03/2022 14:00:00&end=01/03/2022 14:01:00


Enero 28, 2022


Agregar Extras a usuario

Ahora el campo personalizable de usuario llamado Extras, aparecerá donde se muestren datos de usuario en las respuestas de la API.

Por ejemplo, en el campo createdBy de un pedido:

{
  ...
  "createdBy": {
    "name": "User number one",
    "id": 1,
    "enabled": true,
    "username": "user@example.com",
    "extras": "NUEVO CAMPO"
  }
}

Esto es útil para las integraciones porque podrías escribir un objeto JSON para hacer referencia por ejemplo para asignar almacenes a los vendedores.
CleanShot 2022-01-28 at 16.41.28.png 364 KB View full-size Download


{
  ...
  "createdBy": {
    "name": "User number one",
    "id": 1,
    "enabled": true,
    "username": "user@example.com",
    "extras": "{\"warehouse\": 1}"
  }
}



Enero 10, 2022


Asignar Zona por descripción

Ya es posible asignar a un cliente la Zona usando nombre de la zona en lugar del ID. Le das la descripción y si existe, la toma, si no, la crea. 

Ya no es necesario hacer esto en dos pasos (crear zona y luego asignarla), aunque todavía se puede hacer así.

Para especificar por texto en lugar de por ID, se necesita especificar la descripción como objeto:
{ "zone": { "description": "Cadena de texto" }

Asignar Familia de producto por descripción

Lo mismo de las zonas, aplica para las familias de productos.

Asignar ID externo de pedido para futura referencia

Ahora se puede actualizar un pedido sólo para agregar un dato llamado externalId, donde puedes guardar el ID del pedido que se sincronizó hacia otro sistema externo. 

Esto es útil si se borra el pedido en el futuro. 

Puedes hacer referencia al ID que corresponde al sistema externo y así hacer el borrado en el sistema externo también.

Para hacerlo, sólo haces un PUT a /api/v2/salesOrder/:id con el body:
{ externalId: "1" }

externalId es de tipo String.



Diciembre 11, 2021


Límite de solicitudes por minuto

Se aplicó la misma lógica de límite de solicitudes por minuto de la API v2 a la API v1.

Esto para prevenir un par de abusos hacia las llamadas a la API y poder mantenerla estable y robusta para todos.

El límite es de 500 solicitudes por minuto.

Consulta la documentación de la API, o los ejemplos de uso, para saber más.