Crear un Pedido
Comienza creando un pedido
con nuestra API
Calcula el Costo
Calcula el costo de entrega
de cada pedido.

Documentación

Conoce nuestra guía y ejemplos para integrar Picker a tu sistema.

Ver Guia

API Delivery

Conecta nuestra plataforma logística a tu
sistema para hacer tus entregas.
Ecommerce
App
POS

Dashboard de Control

Conecta nuestra plataforma logística a tu
sistema para hacer tus entregas.
Ecommerce
App
POS

Dashboard de Analítica

Conecta nuestra plataforma logística a tu
sistema para hacer tus entregas.
Ecommerce
App
POS
API REFERENCES

¿Cómo la API de Delivery funciona?

En el comercio digital, las entregas a domicilio son un eje importante del modelo de negocio y en Picker lo sabemos. Para poder construir una integración con Picker que maneje tus entregas a la perfección, es importante saber cómo funciona
lo que no vemos.

Consulta de distancia y precio en tu plataforma

Cuando tu cliente llena su carrito y está listo para hacer el checkout, tu plataforma consulta a Picker en vivo la distancia entre los puntos y te devuelve el costo del delivery.

Creación de pedido

Una vez que el cliente confirma el pedido, se envía a Picker los Booking Details con los que crearemos el pedido de nuestro lado.

NOTA: La búsqueda de un repartidor se inicia al momento de crear el pedido.

Búsqueda y asignación de repartidor

El sistema RADAR de Picker ubicará y asignará el pedido al repartidor más cercano al punto de recogida.

Devolución de datos

Picker te devuelve los datos del pedido: Repartidor, ETA, fase del pedido, tiempo, distancia. Puedes usar estos datos para control de despacho tuyo o de terceros.

URL de Seguimiento

Picker envía a tu cliente una URL que abre en su navegador web una ventana de seguimiento del pedido. Esta URL se puede enviar por SMS, Mail o WhatsApp.

Chat Integrado

Tu cliente podrá comunicarse con el repartidor a través del chat integrado, para ultimar detalles de la entrega.

Cierre del pedido

Una vez confirmada la entrega por el repartidor. Se envía el estado de pedido completado.

¿Cómo se calcula el costo de entrega?

¿Cómo se calcula el costo de entrega?

Tu cliente debe poder conocer el valor exacto de la entrega a pagar incluso antes de confirmar su pedido. Para eso Picker desarrolló esta conexión que te permite consultar el costo basado en la distancia y recibir un valor exacto para colocarlo en tu eCommerce.

1. Endpoint /api/preCheckout

Tu Servidor
Picker usa /api/preCheckout como endpoint para recibir los siguientes datos: el API Key del local (punto de recogida) y las coordenadas del punto de entrega de un pedido y así poder calcular el costo del delivery entre esos dos puntos.
Ejemplo de código en Node.js

2. Recibir deliveryFee

Tu Servidor
Picker usa /api/preCheckout como endpoint para recibir los siguientes datos: el API Key del local (punto de recogida) y las coordenadas del punto de entrega de un pedido y así poder calcular el costo del delivery entre esos dos puntos.

3. Proyectar deliveryFee

Tu Servidor
El valor que Picker te retorna es el que se acumulará en tu Billing. Por tu lado puedes utilizar el mismo valor directamente o implementar un valor propio. Recomendamos la segunda opción ya que te da flexibilidad para crear promociones o descuentos sin depender de Picker.

Creación de un pedido

La creación de un pedido es el segundo paso del flujo completo de nuestro servicio. Es el momento en que se solicita a Picker iniciar la búsqueda de un repartidor cercano y proceder a la asignación.

1. Endpoint /api/createBooking

Tu Servidor
Picker usa /api/createBooking como endpoint para recibir los datos obligatorios para crear un pedido. Los datos obligatorios para la creación de un pedido van desde el API KEY del local, nombre del cliente, teléfono, coordenadas del punto de entrega, etc.
Ejemplo de código en Node.js

2. Recibir BookingDetails

Tu Servidor
Picker te retorna un JSON con los datos de BookingDetails. Esta es toda la información relevante de un pedido. Esta información sirve para poder darle seguimiento a los detalles del pedido, siendo el dato más importante de ID del pedido. Código único de identificación.
200: OK
400: Conflict

Este conflicto se da cuando el punto de entrega está fuera de rango.

3. Reservas

Tu Servidor
Es importante conocer que el pedido se crea en el momento en que se envían los datos al endpoint /api/createBooking. Si en tu plataforma existe la opción de entregas a una hora específica o día específico, es preferible hacer este llamado el día y la hora adecuada. Siempre hay que crear el pedido cuando se necesita hacer la entrega, sin importar si en tu plataforma el pedido se creó horas o días antes.

4. Método de Pago

Tu Servidor
Existen dos métodos de pago para los deliveries. Efectivo y Tarjeta.

Tarjeta: Cuando tu cliente está pagando en tarjeta de crédito o débito en tu plataforma, tú sólo necesitas que nuestro repartidor recoja y entregue. Por lo que debes colocar Card en paymentMethod. Esto hará que el sistema indique al repartidor que solo debe recoger y entregar.

NOTA: Esta modalidad es simple. El repartidor recoge y entrega. El delivery (costo de Picker) es cargado a tu Billing.

Efectivo: Cuando tu cliente está pagando el pedido en efectivo, nuestro repartidor te pre-paga el valor de tus productos en el punto de recogida y recupera su dinero al momento de entregar el pedido. Por lo que debes colocar Cash en paymentMethod. Esto hará que el sistema indique al repartidor el valor a pagar al momento de retirar el producto.

NOTA: Esta modalidad es un poco más compleja. El repartidor paga, recoge y recupera al entregar. El repartidor sólo paga el valor de orderAmount (valor de los productos vendidos). El delivery (costo de Picker) se cobra de manera directa al cliente final, este no se suma a tu Billing.

En caso de que quieras cobrar un valor diferente de delivery (mayor o menor) este debe incluirse en el orderAmount.

Ejemplo:

1. Venta de $10 USD en tu página web.

2. Consultas costo del delivery con /api/preCheckout y Picker te devuelve $2 USD.

3. Tu quieres cobrar $3 USD de delivery a tu cliente, para ganar $1 USD.

4. El pedido es en Efectivo.

5. Envías a /api/createBooking el dato de orderAmount con
$11 usd. ($10 USD producto + $1 USD ganancia delivery).

6. El repartidor te pre-pagará los $11 USD al momento de
retirar. (Tu ya tienes tu venta y tu delivery extra).

7. El repartidor cobra los $13 USD al cliente final. Recupera sus $11 USD y cobra los
$2 USD de costo de Picker.

¿Cómo se asigna un pedido a un repartidor?

¿Cómo se calcula el costo de entrega?

Una vez creado el pedido, el servidor de Picker empezará la búsqueda de un repartidor cercano disponible y le asignará el pedido. Cuando un conductor acepte el pedido, se enviará un POST request del servidor de Picker a la url que el negocio especificó para manejar el evento de DRIVER_ASSIGNED.

1. URL/Endpoint/Webhook DRIVER_ASSIGNED

Tu Servidor
Picker requiere que se haya creado previamente por tu lado la url/endpoint/webhook denomidada DRIVER_ASSIGNED, donde se te enviará un JSON con los datos del repartidor asignado a un pedido.

Actualización de estados

Una vez que el pedido está en curso, cada vez que haya una actualización importante de un estado se enviará un POST request del servidor de Picker a la url que el negocio especificó para manejar el evento de UPDATE_BOOKING_STATUS.

1. URL/Endpoint/Webhook UPDATE_BOOKING_STATUS

Tu Servidor
Picker requiere que se haya creado previamente por tu lado la url/endpoint/webhook denomidada DRIVER_ASSIGNED, donde se te enviará un JSON con los datos del repartidor asignado a un pedido.

2. Estados de un pedido

El flujo de un pedido completo de Picker tiene los siguientes estados:

- ARRIVED_AT_PICKUP: Este estado se actualiza cuando el repartidor marca llegada al punto de recogida.

- WAY_TO_DELIVER: Este estado se actualiza cuando el repartidor marca salida del punto de recogida y va en dirección al punto de entrega.

- ARRIVED_AT_DELIVERY: Este estado se actualiza cuando el repartidor marca llegada al punto de entrega.

- COMPLETED: Este estado se actualiza cuando el repartidor confirma entrega del pedido y cierra el servicio.

Detalles del pedido (Opcional)

Sabemos que no todas las plataformas que se puedan usar para integrarse a Picker son 100% customizables. Por ende si por tu lado no es posible crear un endpoint o webhook para recibir nuestros datos de actualización del pedido. Hemos creado uno nuestro para que consultes actualizaciones durante un pedido.

Recomendación: La elaboración de este método debe ser revisada por el equipo de Picker previo lanzamiento a producción, para evitar sobrecargas de llamados al servidor.

1. Endpoint /api/getBookingDetails

Tu Servidor
Picker usa /api/getBookingDetails como endpoint para recibir los siguientes datos: API Key del local y número de pedido. Con estos datos se pueden consultar los detalles actualizados del pedido.

2. Recibir BookingDetails

Tu Servidor
Picker te retorna un JSON con los datos de BookingDetails. Estos datos están relacionados a toda la información importante de un pedido, actualizada dependiendo del último estado del mismo.
200: OK
404: NOT FOUND
409: NOT FOUND
Si el número de pedido que envías no se encuentra, te devolverá error 404. Por el otro lado si envías un número de pedido correcto pero este no está relacionado a tu API KEY, te devolverá error 409.

Pedidos pasados (Opcional)

Si quieres registrar en tu plataforma una lista de todos los pedidos anteriores hechos a través de Picker, puedes consultar los datos en este endpoint. Picker te ofrece una conexión a un dashboard de control de pedidos donde ya se guarda el histórico. Pero también tienes la opción de almacenarlos directamente en tu plataforma.

1. Endpoint /api/getPastBooking

Tu Servidor
Picker usa /api/getPastBooking como endpoint para recibir los siguientes datos:
API Key del local y la cantidad de resultados que se desea y rango de fechas.
Ejemplo de código en Node.js

2. Recibir PastBooking

Tu Servidor
Picker te retorna un JSON con los datos de PastBooking. Estos datos están relacionados a toda la información de los últimos pedidos hechos a través de tu
API Key.
200: OK
El parámetro count de la respuesta indica la cantidad de pedidos que has realizado.

El parámetro bookings de la respuesta contiene todos pedidos.

Se usan los parámetros skip y limit para hacer paginación.

"Próximamente"

"Próximamente"