API Delivery Docs

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

Documentación

API REFERENCES
Conoce nuestra guía y ejemplos para integrar Picker a tu sistema
Ver Guía

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

¿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?

API Reference
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.
fetch(“52.48.166.156:303/api/preCheckout”,) { method: “POST”, headers: { “Content-Type”: “application/json”, “Authorization”: “Bearer” {{apiKey}}” //API KEY DEL LOCAL }, body: { latitude: -2.192912, longitude: -79.888705 } //COORDENADAS DE PUNTO DE ENTREGA }) .then(response => response.json()) .then(result => { console.log(“Success”, result); }) .catch(error => { console.error{“Error:” , error); });
Copiar

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.
{ “statusCode”: 200, “message”: “Success”, “data”: { “deliveryFee”: 2.42 } }
Copiar
{ “statusCode”: 400, “error”: “Bad Request”, “message”: “child “latitude” fails because [latitude is required], “validation”: { “source”: “playload”, “keys:” [ “latitude” ] } }
Copiar

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

API Reference
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.
fetch ("https://dev-api.pickerexpress.com/api/createBooking") { method: “POST”, headers: { “content-language”: “es”, “Authorization”: “Bearer” {{Token}}” //API KEY generada para el usuario }, body: { orderAmount: 9.9, //Cantidad de dinero que cuesta el producto paymentMethod: “CASH” //Método de pago para el pedido. CARD/CASH longitude: -2.31233, //Coordenada de longitud del punto de entrega del pedido latitude: -1.312313, //Coordenada de latitud del punto de entrega del pedido city: “Guayaquil”, state: “Guayas”, zipCode: “0245”, address: “Miraflores principal”, //Dirección de entrega del pedido customerName: “Pedro Ruiz”, customerLastName: “Ruiz”, customerEmail: “pedro@sancho.com”, customerMobile: “096737271299”, customerCountryCode: “+593” // Código del país sendSMR: "false", // Si es true, Picker envia una notificación con el link de tracking al cliente; Si es false, no la envía businessDeliveryFee: 2, // Precio que va a cobrar por el servicio de entrega cookTime: 100 // Tiempo de espera en milisegundos para el inicio de la búsqueda de conductores reference: "Esquina casa roja" // Referencia a dirección de entrega externalBookingId: "444511" // Id de referencia de tu pedido } }) .then(response => response.json()) .then(result => { console.log(“Success”, result); }) .catch(error => { console.error{“Error:” , error); });
Copiar

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
“statusCode”: 200 “message”: “Success”, “data”: { “bookingNumericId”: 3731 “createdAT”: “2020-01-14T21:50:04.598Z”, “customerName”: “Edison Mora”, “customerMobile” “+593992555555”, “bookingType”: 0, “typeText”: “PICKUP_AND_DELIVER”, “paymentMethod”: “CARD”, “paymentMethodCode”: 1, “carType”: 1, “carName”: “BIKE”, “_id”: “5e1e378c0c4148200487a01a”, “statusUpdates”: [], “statusText”: “READY_FOR_PICKUP”, “currentStatus”: 22, “distanceBreakUp”: { “extraDistance”: 0, “baseDistance”: 0, “billedDistance”: 3.51604391981227, “realDistance”: 0, }, “totalAmount”: 2.7, “totalPay”: 2.7, “ServiceAmount”: 2.7, “orderAmount”: 0, “deliveryFee”: 2.7, “pendingAmount”: 0, “priceBrakUp”: { “taxCharges”: 0, “tip”: 0, “donation”: 0, “comission”: 0, “referralDiscount”: 2.7, “promoDiscount”: 0, “recieveByDriver”: 0, “extraPayment”: 0, “businessPayment”: 0, “companyPayment”: 0, “driverPayment”: 0, “orderAmount”: 0, “perMinCharge”: 0.4, “perKmCharge”: 0, “baseFare”: 2.3, }, “vehicleColor”: “null”, “pickupCoordinates”: { “coordinates”: [ -79.898705, -2.162912, ], type: “Point” }, “pickupAdress”: “Kennedy Norte, Calle Justo Cornejo y Av. Luis Orrantia, Edificio Torres Atlas, Piso 5, Oficina 2, Guayaquil, Ecuador”, “pickupZipCode”: “123455”, “pickupState”: “Ecuador”, “pickupCity”: “Guayaquil”, “deliveryCoordinates”: { “coordinates”: [ -79.88705, -2.192912 ], “type”: “Point” }, “deliveryAdress”: “Hola”, “deliveryZipCode”: “1234”, “deliveryState”: “Ecuador”, “deliveryCity”: “Guayaquil”, “driverEmail”: null, “driverImage”: { “original”: null, “thumbnail”: null }, “driverMobile”: null, “driverName”: null, “driver”: null, “customerEmail”: “edan@edan.com” “customerImage”: { “original”: null, “thumbnail”: null }, }, },
Copiar
400: Conflict:
Este conflicto se da cuando el punto de entrega está fuera de rango.
“statusCode”: 400, “error”: “Conflict”, “message”: “Sorry we don’t have coverage of this area yet”
Copiar

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.

Registro de Webhooks

¿Cómo se calcula el costo de entrega?

Para que puedas recibir las Actualizaciones de Estado/Asignaciones de Pedidos, es necesario que registres tu url o endpoint donde quieres que te enviemos estas actualizaciones para que tu plataforma pueda procesarla. Este registro solo debes hacerlo una vez por cada local por cada webhook que quieras recibir.

¿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.
{ driverName: “Conductor Prueba”, driverImage:{ original: “”, thumbnail “” }, driver: “5df280d11348c649d8f11940”, driverEmail: “conductor@prueba.com”, driverMobile: “+593999999999”, bookingID: “5df280d11348c649d8f11be” bookingNumericId: 1234, }
Copiar

Registro de Webhooks

API Reference

¿Cómo se calcula el costo de entrega?

Para que puedas recibir las Actualizaciones de Estado/Asignaciones de Pedidos, es necesario que registres tu url o endpoint donde quieres que te enviemos estas actualizaciones para que tu plataforma pueda procesarla. Este registro solo debes hacerlo una vez por cada local por cada webhook que quieras recibir.

Actualización de estados

API Reference
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.
{ statusText: “WAY_TO_DELIVER”, currentstatus: 3, bookingID: “5df280d11348c649d8f11be” bookingNumericId: 1234, }
Copiar

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)

API Reference
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.
fetch(“52.48.166.156:303/booking/createBooking”,) { method: “GET”, headers: { “content-language”: “en”, “content-Type”: “apliccation/json”, “Authorization”: “Bearer{{apikey}}” .then(response => response.json()) .then(result => {console.log(result)) .catch(error => {console.error{“Error:”, error));
Copiar

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
“statusCode”: 200 “message”: “Success”, “data”: { “bookingNumericId”: 1234 “createdAT”: “2020-01-14T21:50:04.598Z”, “customerName”: “Cliente”, “customerMobile”: “+593992555555”, “statusText”: “COMPLETED”, “currentStatus”: 5, “orderAmount”: 0, “deliveryFee”: 2.2, “pickupCoordinates”: { “coordinates”: [ -79.8517301, -2.168945, ], type: “Point” }, “deliveryCoordinates”: { “coordinates”: [ -79.88705, -2.192912 ], “type”: “Point” }, “driverEmail”: “conductor@pickerexpress.com”, “driverMobile”: “+593999999444”, “driverName”: “Conductor Prueba”, “customerEmail”: “cliente@cliente.com” “currentCoordinates”: { “coordinates”: [ -79.9066651, -2.1508389 ], }, “arrivalTime”: 0, “smrURL”: “https://smr.pickerexpress.com/” },
Copiar
404: NOT FOUND
“statusCode”: 404, “error”: “Not Found” “message”: “Booking not found”,
Copiar
409: NOT FOUND
“statusCode”: 409, “error”: “Conflict” “message”: “You dont belong to this booking”,
Copiar
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)

API Reference
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.
fetch(“https://dev-api.pickerexpress.com/api/getPastBooking?startDate=2020-06-01T00:00:00-05 :00&endDate=2020-06-30T23:59:59-05:00&limit=12&skip=0”, { method: “GET”, headers: { “content-language”: “en”, “content-type”: “apliccation/json”, “Authorization”: “Bearer{{apikey}}” .then(response => response.json()) .then(result => {console.log(result)) .catch(error => {console.error{“Error:”, error));
Copiar

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
“statusCode”: 200 “message”: “Success”, “data”: { “count”: 50, “bookings”: [ { “id”: “5e456865e930c640be094569”, “bookingNumericId”: 1234, “createdAT”: “2020-02-13T15:16:53.976Z”, “customerName”: “Cliente”, “customerMobile”: “+593992555555”, “statusText”: “COMPLETED”, “currentStatus”: 5, “orderAmount”: 0, “deliveryFee”: 2.2, “pickupCoordinates”: { “coordinates”: [ -79.8517301, -2.168945, ], type: “Point” }, “deliveryCoordinates”: { “coordinates”: [ -79.898831, -2.192912 ], “type”: “Point” }, “driverEmail”: “conductor@pickerexpress.com”, “driverImage” { “original”: “”, “thumbnail”: “” }, “driverMobile”: “+593999999444”, “driverName”: “Conductor Prueba”, “customerEmail”: “cliente@cliente.com” “customerImage” { “original”: “”, “thumbnail”: “” },
Copiar
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.

Seguimiento de Pedido

Usando Websockets en Picker

La conexión al websocket de Picker te permitirá integrar tu propia tracking en el dispositivo para tus clientes finales.

El servicio de websocket te notificará por medio de un objeto JSON con los datos respectivos.

Existen dos ambientes de este servicio, el ambiente para pruebas y el ambiente de producción. Podrás conectarte a ellos por medio de su URL:

1) Pruebas: https://dev-smr-service.pickerexpress.com

2) Producción: https://smr-service.pickerexpress.com


Obtener información de un pedido

Para poder obtener la información de un pedido es necesario que por medio del token (smrToken) realices una conexión hacia el servicio. Para ello debes enviar un mensaje por el canal joinChatRoom con el código del token.

Este token lo consigues al momento de crear un pedido. Al crear un pedido tendrías la siguiente respuesta:
{ _id: 636a533dbcccc86939ad3828 bookingNumericId: 1111111 ... smrToken: 9WrnCk6yi }
Copiar
Suponiendo que el token que dispones es 9WrnCk6yi el código sería el siguiente:
socket.emit("joinChatRoom", "9WrnCk6yi");
Copiar

Existen dos tipos de mensajes que recibirás:

1. Cambios de estado
2. Posición actual del conductor



1) Cambios de estado

Cada vez que el conductor marque como completada una fase en su aplicación móvil recibiremos un mensaje con el estado nuevo del pedido.

Ejemplo:
{ statusText: ARRIVED_AT_PICKUP }
Copiar

Los estados que puedes recibir son:

ARRIVED_AT_PICKUP: Este estado se recibe cuando el repartidor marca la llegada al punto de recogida.

WAY_TO_DELIVER: Este estado se recibe cuando el repartidor marca la salida del punto de recogida y va en dirección alpunto de entrega.

ARRIVED_AT_DELIVERY: Este estado se recibe cuando el repartidor marca la llegada al punto de entrega.

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

Ejemplo:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Super tracking<title> </head> <body> <script src="https://cdn.socket.io/4.5.3/socket.io.min.js" integrity="sha384-WPFUvHkB1aHA5TDSZi6xtDgkF0wXJcIIxXhC6h8OT8EH3fC5PWro5pWJ1TH"> <script> var socket = io("https://smr-service.pickerexpress.com"); socket.on('connect', function() { console.log('Conectado al servidor') }); socket.on('disconnect', function() { console.log('Perdimos comunicación con el servidor'); }); socket.on("STATUS_UPDATE", (message) => { const newStatus = message.statusText; console.log("STATUS_UPDATE: ", newStatus ); }); socket.emit("joinChatRoom", "9WrnCk6yi"); // Identificador unico del pedido. smrToken </script> </body> </html>
Copiar


2) Posición actual del conductor

El dispositivo que utiliza el conductor esta utilizando GPS al momento de realizar el envío. Esto nos permite poder enviarte las coordenadas actuales del mismo. El mensaje que llegará será el siguiente:
{ point: [ { longitude: 1.11111, latitude: 1.11111 } ] }
Copiar
Este es un ejemplo de implementación:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Super tracking<title> </head> <body> <script src="https://cdn.socket.io/4.5.3/socket.io.min.js"></script> <script> console.log("Conectando"); var socket = io("https://smr-service.pickerexpress.com"); socket.on("connect", function () { console.log("Conectado al servidor"); }); socket.on("disconnect", function () { console.log("Perdimos comunicación con el servidor"); }); socket.on("newLocation", (message) => { const { longitude, latitude } = message.point[0]; console.log("New location: ", { longitude, latitude }); }); socket.emit("joinChatRoom", "n3eLWs051"); // Identificador unico del pedido. smrToken </script> </body> </html>
Copiar
Atención: Es posible que el sistema no siempre te envíe la ubicación actual del conductor, ya que el mismo puede haberlo apagado una vez empezado el viaje, sin embargo los cambios de estados siempre ocurrirán.

Integra Picker con WooCommerce

Te damos la bienvenida a la integración del plugin de Picker con WooCommerce, para utilizar el plugin de Picker, ya debes tener la cuenta de tu negocio registrado en nuestra plataforma. Si aún no la has creado, puedes hacerlo ahora dando click Crear una cuenta con Picker.

Instalación

¿Cómo Instalar?​

1) Busca “Picker” en la tienda de Wordpress y dale a instalar ahora.​

2) Activa el plugin de Picker, dale a la opción “Activar”

Cuando tengas el plugin de Picker activo, ya puedes comenzar a configurarlo.

Configuración

Configuraciones Adicionales

Es necesario hacer algunas configuraciones adicionales para el funcionamiento correcto del plugin de Picker. Te las contamos a continuación:

 - Instalación de SG Map to Address
 - Tener listo el API Key de Google Maps
 - Tener Habilitado Geocoding API, Maps JavaScript API, Places API
 - Activar la opción de Pagar al enviar ( Función de WooCommerce )

Instalación de SG Map to Address

Para que el plugin de Picker se pueda usar efectivamente, te recomendamos instalar el plugin SG Map to Address que es complementario al plugin de Picker y tiene como función permitir a los usuarios de tu eCommerce seleccionar su ubicación de envío en Google Maps.

Tener listo el API Key de Google Maps

Cuando vayas a configurar el plugin de SG Map to Address en WooCommerce / Configuración / Avanzado SG Map to Address te pedirá que ingreses tu API Key de Google Maps.

Te compartimos la Documentación de SG Map to Address aquí.

Tener Habilitado Geocoding API, Maps JavaScript API y Places API

Debes tener habilitados desde Google Cloud Platform estas 3 opciones de API que permitirán que el plugin de Picker funcione correctamente.

*Estos pasos son obligatorios para el funcionamiento de Google Maps.

Activar la opción de Pagar al enviar ( Función de WooCommerce )

Cuando tu negocio está afiliado a Picker, te recomendamos que actives esta opción para que los repartidores puedan cobrarle a tus clientes al momento de entregar un producto.

Funcionalidades

Modo Pruebas

Al activar el modo de  pruebas, podrás crear pedidos y consultar el precio de un pedido en nuestro ambiente de Pruebas. Ten en cuenta que todos los pedidos y consultas realizadas al tener activo esta funcionalidad, estarán apuntando a nuestro ambiente de pruebas. Si necesitas crear pedidos reales, debes desactivar esta opción.Considera que si vas a usar esta opción, el api key que uses debe ser también del ambiente de pruebas.

Propia tarifa de envío

Al activar esta opción, la tarifa de envío que se le va a cobrar al cliente la podrás configurar desde aquí. Al tener activado esto, el precio que visualizará el cliente será el precio fijo que tu configures. No se usará la tarifa dinámica de Picker.

Si tu pedido es en efectivo, este será el valor que se le cobrará al cliente al entregarse el pedido.Nota Importante: Este precio de envío fijo es totalmente indiferente a la tarifa que te facturará Picker por cada servicio.

Modo Pruebas

En el panel de órdenes de WooCommerce, podrás visualizar 2 links en el apartado de Picker:

- Ver Tracking: Te permitirá visualizar el tracking de envío del pedido, el cual tambien es envíado a tu cliente. Este tracking te permitirá ver en vivo la gestión de tu pedido.


- Ver Pedido en Dashboard: Si estás logueado al Dashboard de Picker, esta opción te llevará a ver el detalle del pedido en el Dashboard de Picker.

Instalación

¿Cómo Instalar?​

Al ingresar a descargar el Plugin, te vas a encontrar con 2 archivos comprimidos:

- La primera carpeta comprimida contiene el plugin apuntando al ambiente de producción (Para ingresar a tu dashboard de tu empresa en producción debes ingresar a https://dashboard.pickerexpress.com).

- La segunda carpeta comprimida, con el sufijo dev, es la que apunta al ambiente de pruebas o desarrollo. Para solicitar una cuenta de desarrollo, debes ingresar a https://picker-dashboard.vercel.app

 1) Descarga el Plugin de Picker

Descargar Plugin de Picker

 2) Dale click a la opción “Subir plugin” , y súbelo en formato .zip

 3) Activa el plugin de Picker

Cuando tengas el plugin de Picker activo, ya puedes comenzar a configurarlo.

Configuración

Configuración del Plugin de Picker

Para conectar el plugin de Picker a tu eCommerce debes añadir la API Key de la tienda, la puedes encontrar en tu Dashboard en la sección Cuenta.

 1) Copia tu API Key

2) Pegala en la sección de WooCommerce/Configuración/Envío/Picker

3) Guarda los cambios para tener conectado los datos de tu negocio con tu eCommerce.

Configuraciones Adicionales

Es necesario hacer algunas configuraciones adicionales para el funcionamiento correcto del plugin de Picker. Te las contamos a continuación:

 - Instalación de SG Map to Address
 - Tener listo el API Key de Google Maps
 - Activar la opción de Pagar al enviar ( Función de WooCommerce )

Instalación de SG Map to Address

Para que el plugin de Picker se pueda usar efectivamente, te recomendamos instalar el plugin SG Map to Address que es complementario al plugin de Picker y tiene como función permitir a los usuarios de tu eCommerce seleccionar su ubicación de envío en Google Maps.

Tener listo el API Key de Google Maps

Cuando vayas a configurar el plugin de
SG Map to Address en 
WooCommerce /Configuración/Avanzado/SG Map to Address te pedirá que ingreses tu API Key de Google Maps.

Te compartimos la Documentación de SG Map to Address aquí.

Tener Habilitado Geocoding API, Maps JavaScript API y Places API

Debes tener habilitados desde Google Cloud Platform estas 3 opciones de API que permitirán que el plugin de Picker funcione correctamente.

*Esta opción es obligatoria para el funcionamiento de Google Maps.

Activar la opción de Pagar al enviar ( Función de WooCommerce )

Cuando tu negocio está afiliado a Picker, te recomendamos que actives esta opción para que los repartidores puedan cobrarle a tus clientes al momento de entregar un producto.

Integra Picker con VTEX

Te damos la bienvenida a la integración de Picker con VTEX, para realizar la integración completa, ya debes tener la cuenta de tu negocio registrado en nuestra plataforma. Si aún no la has creado, puedes hacerlo ahora dando click a Crear una cuenta con Picker.

Crear Application Keys para integración

Para poder integrar tu sitio de VTEX con la Plataforma Picker es necesario primero crear tus app keys para poder sincronizar y autorizar cualquier request que se realizará con VTEX. Para esto deberás dirigirte a Account Settings > Application Keys.


Posteriormente, deberás hacer click en “Manage Keys”.


Aquí deberás hacer click en la opción “Generate New”. En la siguiente ventana, podrás agregarle un nombre a tu nueva key.

Para que las credenciales a crear tengan los accesos necesarios, deberás agregarle un rol. Como Picker consultará las órdenes creadas y los pickup points, deberás agregarle roles que tengan acceso a estas instancias (en el caso de la demostración, se le pondrá accesos administrativos).

Una vez guardado los datos de los keys, se presentará una pantalla donde se te presentarán las credenciales. Es muy importante que en este momento copies tanto el Application Key y su Application Token, ya que, posteriormente a esta pantalla no vas a poder volver a consultarlos.


Ten en consideración que estos set de keys te servirán para cualquier request API que quieras hacer con VTEX (algunos de los pasos que verás a continuación los va a requerir).

Requerimientos antes de crear un Shipping Policy

Picker en VTEX se lo considera un Carrier, el cual debe tener asignado un Shipping Policy. Antes de crear a Picker cómo Shipping Policy deberás tener antes los siguientes requerimientos:

1) Activar Geolocation Shipping https://help.vtex.com/en/tutorial/registering-geolocation--tutorials_138

2) Crear Pickup Points:

https://help.vtex.com/en/tutorial/o-que-e-uma-transportadora-7u9duMD5UQa2QQwukAWMcE

a) Al crear un pickup point (que para Picker representa un local en tu workspace), deberas crearlo con los mismos datos con los que lo creaste en tu plataforma de Picker.

b) Para poder identificar en VTEX tus locales de Picker, deberás ingresar como ID del Pickup Point el API Key de tu local

Crear Shipping Policy

Para crear un shipping policy, se lo puede hacer de 2 distintas maneras:


1) Vía Portal Web https://help.vtex.com/en/tutorial/shipping-policy--tutorials_140


IMPORTANTE: Al crear manualmente un shipping policy que quieres que se integre con Picker, debes ingresar como ID la palabra “PICK”.


2)
Vía API con Postman https://developers.vtex.com/vtex-rest-api/reference/post_logistics-pvt-shipping-policies

De la misma forma como en su versión por el Portal Web, es necesario que para este shipping policy, se debe ingresar como ID la palabra “PICK”




Adicionalmente a esto, se debe tomar en cuenta que una vez creada esta política, deberán ingresar las reglas de precios de este método de delivery (Estos precios son aquellos que se les cobrará al cliente y son totalmente independientes a los precios que cobra Picker por cada delivery)

Crear Webhook de orden

Una vez que tengas todos los pasos anteriores, vamos a ejecutar vía Postman el registro de hook de órdenes. Este paso es el más importante, ya que una vez ingresado este paso, todos los pedidos que tengan el método de shipping de Picker, se ingresarán a la plataforma.

Para crear el hook necesario para la creación del pedido en Picker, deberás ejecutar el siguiente endpoint con tus credenciales https://developers.vtex.com/vtex-rest-api/reference/hookconfiguration


Para este caso en particular, ejecutaremos el endpoint con el siguiente body:

Snippet
Copiado!
{    
"filter":{        
   "type": "FromWorkflow",        
   "status": [            
      "order-accepted"        
      ]    
    },    
      "hook": {        
         "url": "https://dev-api.pickerexpress.com/api/pushVtexOrder"    
       }
}


Antes de ejecutar este endpoint deberás tener en consideración lo siguiente:

1) Nosotros queremos que la orden se cree en Picker una vez que esté aceptada, es por eso que en el campo status, utilizamos “order-accepted”.

2) Es obligatorio que en el campo status (a pesar de que sea un arreglo), solo ingreses un solo tipo de estado, para evitar duplicaciones de las órdenes en Picker.

3) En url, deberás ingresar el endpoint del ambiente que quieres utilizar:

a) Para ambiente de pruebas: https://dev-api.pickerexpress.com/api/pushVtexOrder

b) Para ambiente de producción: https://api.pickerexpress.com/api/pushVtexOrder


Si necesitas mas información
acerca de hooks, puedes verla aquí https://developers.vtex.com/vtex-rest-api/docs/orders-feed#hook-notifications

Integra Picker con Shopify

Te damos la bienvenida a la integración de Picker con Shopify, para realizar la integración completa, ya debes tener la cuenta de tu negocio registrado en nuestra plataforma. Si aún no la has creado, puedes hacerlo ahora dando click a Crear una cuenta con Picker.
 


También debes tener en cuenta que debes tener un plan pagado con tu tienda de Shopify.

Crear Aplicación para Tu Tienda

Para empezar a integrar Picker en Shopify, debes empezar creando una aplicación para tu tienda. Puedes hacerlo mediante la opción Aplicaciones > Desarrollar aplicaciones para tu tienda.


A continuación, permite el desarrollo de aplicaciones personalizadas (Recuerda leer los términos y condiciones).


Una vez aprobado el desarrollo de aplicaciones personalizadas, te aparecerá esta pantalla. Haz clic en crear una aplicación.


Creamos la aplicación (en este caso vamos a ponerle Picker), y procedemos hacer clic en Configurar alcances de la API del panel de control.

En esta pantalla es muy importante tener seleccionados los siguientes permisos que va a tener la API de Picker. Se deben seleccionar los siguientes:

  • read_payment_terms

  • read_shipping

  • read_orders

  • read_locales

  • read_fulfillments

  • read_locations

  • read_assigned_fulfillment_orders

  • read_third_party_fulfillment_orders

  • read_merchant_managed_fulfillment_orders

Así mismo, procura que la versión de API y Webhooks sea la 2022-04


Una vez realizado esto, procedemos hacer click en Instalar aplicación para poder solicitar el token de acceso para los servicios del API de Shopify.

Ten en consideración que este token solo se puede revelar una vez. Cópialo y guárdalo en un lugar seguro.

Configurar credenciales de Shopify en Picker

Para poder configurar las credenciales de Shopify en Picker, primero deberas crear un Workspace. Una vez creado el workspace, ve a la sección Configuración -> Integraciones.

Haz click en Cambiar, para poder ingresar tus credenciales. En esta sección deberás agregar tanto el Access Token que obtuviste de Shopify y la url de tu sitio. Una vez agregada, se intentará verificar las credenciales para poder proceder al siguiente paso (para verificar si ingresaste correctamente las credenciales, el etiqueta de falló desaparecerá).

Configurar sucursales de Shopify en Picker

Al momento de crear un pedido en Shopify es importante saber de cuál local de Picker se despacha el pedido. Para esta consideración se hace una relación entre las sucursales de Shopify de tu sitio con el local de Picker en tu Workspace.
Para poder relacionar las sucursales de Shopify en Picker, en la misma pantalla de Configuración de Shopify, haz click en Cambiar. Si ya tienes configuradas las credenciales correctamente, te aparecerán las sucursales de Shopify y los locales de Picker al ingresar a la opción Gestionar Los Locales.


A continuación, te aparecerá un listado de todas las sucursales que tienes activas en Shopify. Si alguno de estas sucursales esta relacionado con un local de Picker, en la parte inferior del nombre de la sucursal aparecerá el nombre del local con el que está relacionado.


Para proceder a relacionar una sucursal de Shopify con un local de Picker, debes hacer click en el botón de Editar que esta a un lado de la sucursal de Shopify. Al hacer click aquí, aparecerá una nueva ventana donde podrás seleccionar el local de Picker que quieres que se relaciones con tu sucursal de Shopify seleccionada.


Al hacer seleccionar el local y hacer click en OK, se guardará esta configuración.


De esta manera, si un pedido de Shopify nace de una sucursal, la plataforma de Picker sabrá a qué local se hace mención y lo guardará al momento de crearse el pedido.

Integra Picker con Tienda Nube

Te damos la bienvenida a la integración de Picker con Tienda Nube, para realizar la integración completa, ya debes tener la cuenta de tu negocio registrado en nuestra plataforma. Si aún no la has creado, puedes hacerlo ahora dando click a Crear una cuenta con Picker.

Relacionar Local de Picker con Tienda Nube

Una vez que tu instalación de Picker en Tienda Nube haya sido autorizada, deberás indicar en tu dashboard que local de Picker es el que va atender tus pedidos (en otras palabras, debes seleccionar el local de Picker desde donde se harán los despachos de tus pedidos). Es muy importante que el local que elijas tenga la misma ubicación y dirección que el que tienes configurado en Tienda Nube.

Para configurarlo debes ir a la opción Configuración -> Integraciones

Selecciona Tienda Nube

Y a continuación escoge la tienda que deberá recibir los pedidos de tu sitio de Tienda Nube.Una vez realizado esto, tu integración estará lista y podrás recibir los pedidos de Tienda Nube a tu dashboard de Picker para que sea atendido por nuestros proveedores.

Integra Picker con Ordatic

Te damos la bienvenida a la integración de Picker con Ordatic, para realizar la integración completa, ya debes tener la cuenta de tu negocio registrado en nuestra plataforma. Si aún no la has creado, puedes hacerlo ahora dando click a Crear una cuenta con Picker.

Relacionar tu ID de Tienda de Ordatic con una Local de Picker

Para configurar Ordatic en Picker, únicamente deberás tener el ID de tu tienda de Ordatic y relacionarla con un local de Picker.Para hacer esto, debes ingresar a Configuración -> Integraciones


Escoge la opción de Ordatic

A continuación, te aparecerá el listado de locales que tienes actualmente en tu Workspace de Picker.Al seleccionar cualquiera de ellos, podrás guardar y relacionar el ID del restaurante de Ordatic con el local seleccionado.

Al ingresar el ID y guardar, quedará relacionado tu local de Picker seleccionado con el ID del restaurante de Ordatic que ingresaste.Si un pedido de ese restaurante requiere Delivery, la plataforma de Picker identificará la locación del local mediante este ID y podrá gestionar el pedido.

FAQs de WooCommerce

Encuentra aquí todas las preguntas frecuentes que tienes al momento de hacer la integración de Picker con los plugins.

¿Dónde puedo encontrar el API Key de mi empresa/local?

Debes tener en consideración que el plugin debe usar el api key del local del cual se va a despachar. El API Key de tu local lo puedes encontrar en tu dashboard (https://dashboard.pickerexpress.com) en la sección de Locales.

En el registro del local, en la parte superior derecha, encontrarás el API Key perteneciente al local.

Para poder usar el plugin, ¿Debo tener en mi cuenta algún plan en específico?

Para poder utilizar el plugin de Woocommerce (y cualquier plugin o integración vía API), debes tener activado el Plan Pro de Picker.

¿Cómo puedo saber si estoy correctamente integrado con Picker?

Una vez instalados los plugins de dirección y de Picker, la mejor forma de saber si estás integrado o no, es intentando hacer un checkout en tu plataforma con una dirección de delivery válida (no debe ser tan lejana a la ubicación de tu local). Al ingresar la dirección de entrega y demás campos necesarios en tu carrito de compras, el precio del delivery te aparecerá en el checkout.

En el caso de que no aparezca, revisa tu configuración.

¿El uso de un 3er plugin que esté usando para mi pagina puede interferir con el funcionamiento de Picker?

Como todo plugin de Woocommerce, el uso de varios plugins puede hacer que algunos de estos no funcionen correctamente. Para el caso de Picker, también puede suceder. En especial aquellos que alteran o customizan los campos que se pueden manejar en el checkout (ej: Checkout for Woocommerce).


Para este caso en específico, si el plugin de Picker no está funcionando correctamente, debes revisar que dentro de los campos que tienes en el checkout, estén registrados los siguientes:

- billing_address_latitude
- billing_address_longitude
- shipping_address_latitude
- shipping_address_longitude

En el caso de seguir teniendo inconvenientes, puedes comunicarte con nosotros en el canal de soporte o tu asesor comercial para poder ayudarte.

"Próximamente"

"Próximamente"

Integra Picker con Deliverect

Te damos la bienvenida a la integración de Picker con Deliverect, para poder integrar Picker con Deliverect ya debes tener la cuenta de tu negocio registrado en nuestra plataforma. Si aún no la has creado, puedes hacerlo ahora dando click Crear una cuenta con Picker.

Configurar credenciales de Deliverect en Picker
Configurar locales de Deliverect en Picker

Al momento de crear un pedido en Deliverect es importante saber de que local de Picker se despacha el pedido. Para esta consideración se hace una relación entre las locaciones de Deliverect de tu sitio con el local de Picker en tu Workspace.

Para poder relacionar las locaciones de Delivect en Picker, y si tus credenciales esta correctas, en la misma pantalla de Configuración de Deliverect, podrás ingresar a la siguiente opción de Gestionar Locales.

A continuación, te aparecerá un listado de todas las locaciones que tienes activas en Delivect. Si alguno de estas sucursales esta relacionado con un local de Picker, en la parte inferior del nombre de la sucursal aparecerá el nombre del local con el que está relacionado.

Para proceder a relacionar una locación de Deliverect con un local de Picker, debes hacer click en el botón de Editar que está a un lado de la locación de Deliverect. Al hacer click aqui, aparecerá una nueva ventana donde podrás seleccionar el local de Picker que quieres que se relaciones con tu locación de Deliverect seleccionada.

Al hacer seleccionar el local y hacer click en OK, se guardará esta configuración.

De esta manera, si un pedido de Delivect nace de una sucursal, la plataforma de Picker sabrá a qué local se hace mención y lo guardará al momento de crearse el pedido.

Integra Picker con Hubster

Te damos la bienvenida a la integración de Picker con Hubster, para poder integrar Picker con Hubster ya debes tener la cuenta de tu negocio registrado en nuestra plataforma. Si aún no la has creado, puedes hacerlo ahora dando click a Crear una cuenta con Picker.

Configurar credenciales de Hubster en Picker

Para poder configurar las credenciales de Hubster en Picker, seleccione el Workspace con el que desea realizar la integración o cree uno nuevo. Luego desde el Menú lateral izquierdo en el apartado Configuraciones seleccione Integraciones. Ubique a Hubster y presione sobre el botón azul para empezar el proceso de conexión [véase la figura 1]. Luego de haber presionado sobre el botón de conexión de Hubster se mostrará una lista con los locales registrados para el Workspace seleccionado elija el local Picker al que desea registrar el ID de la tienda Hubster proporcionado por el equipo Hubster y presione sobre el botón Guardar.

Figura 1. Proceso de conexión con Hubster desde un Workspace

Figura 2. Registro del Identificador de Tienda Hubster en un Local Picker.