En este artículo explicaremos como utilizar el entorno de pruebas para poder testear una integración con moova de punta a punta.
Requisitos
Para poder utilizar el entorno de testing es necesario.
Haberse dado de alta en producción y en el entorno de testing. Si no lo hiciste aún ver las instrucciones aquí.
Entorno de Pruebas/Testing
Ir a la URL del entorno de prueba: https://b2b-api-test.moova.io/
Una vez hecho el login se encuentran con el menú principal de la plataforma de testing.
Hay varias pestañas y esto es lo que se visualizará en cada una de ellas.
Recibidos: se visualizan los pedidos recibidos por el sistema a través del endpoint : https://api-dev.moova.io/b2b/shippings en estado “DRAFT”. En esta pestaña se podrá cambiar el estado de los envíos de “DRAFT” a “READY”
Listos: se visualizarán los envíos que están en estado “READY” y se podrá programar un envío generando el evento correspondiente.
Programados: se visualizarán los envíos que están en estado “READY” con fecha de programación.
Confirmados: se visualizarán los envíos programados y podrán ser asignados a un moover y se podrá simular que el moover buscó el paquete en origen y ya comienza el recorrido al destino.
En curso: se visualizarán los envíos que están en curso. Desde aquí podremos “entregar” satisfactoriamente un envío o generar una incidencia
Historial: se visualizarán los envíos que han terminado su ciclo de vida.
Incidencias: se visualizarán los envíos que tienen incidencias y se podrá cambiar de estado a “Listos”, etc.
Creación de API Keys y configuración del WebHook en el entorno del prueba.
Entrando en el menú del usuario / perfil / API/WebHook se podrá visualizar se podrá copiar el API ID / regenerarlo e ingresar la URL del webhook, el método y los headers en caso que se quiera incorporarlos.
Entorno de Pruebas
Los shippings creados a través de /B2B/SHIPPINGS aparecerán en la pestaña de recibidos.
Desde aquí los podemos marcarlos como ready para pasarlos a este nuevo estado.
Si hemos configurado el webhook, recibiremos los siguientes JSON. La fecha indica cuando se cambiaron a READY
Si vamos a la pestaña Listos veremos todos los shippings que están en estado READY
A partir de este paso vamos a generar lo que luego los operadores de Moova van a realizar. El objetivo de esta simulación es poder generar los JSON que recibiremos a través del webhook para poder probar como se comportará el sistema en producción.
Los marcamos como para programarlos y presionamos el botón “Marcar como programado”
En el webhook, recibimos que dos mensajes donde dice que los envíos siguen en estado “ready” pero que ya están programados.
Están programados para ser entregados entre la fecha “scheduled” y “scheduled” más 300 minutos.
Ahora vamos a la pestaña “programados” donde veremos los envíos programados y los vamos a asignar a un mensajero.
En los json que recibimos vemos reflejado el cambio al estado “CONFIRMED” o sea que al envío ya tiene un mensajero confirmado. También enviamos el nombre del Mensajero y la URL de la foto del mismo.
El siguiente paso es que el mensajero recoja el paquete. Esto lo haremos desde la pestaña “Confirmados”
Este cambio se verá reflejado a través de los siguientes webhooks
El status es “PICKEDUP” o sea que ya se recogió el paquete en origen.
El status cambia a “INTRANSIT” o sea que está en transito al destino.
El siguiente paso es que el mensajero entregue el paquete. Esto lo haremos desde la pestaña “En curso”
Primero marcaremos el envío de “nicolás garcía” como entregado.
Recibimos a través del webhook un json con el status = “DELIVERED” el nombre de la persona que lo recibió y la firma
Luego marcaremos el envío de “José Perez” como con una incidencia.
En mensaje que recibimos, el status = “INCIDENCE” y la razón “absent_recipient” y la URL de la foto que prueba que se intentó la entrega.
Estás son todos las incidencias que se pueden recibir según el estado del envío.
Estado del envío | nombre de la incidencia | descripción |
RETURNED | absent_client | Cliente ausente |
CONFIRMED | error | Tomado por error |
CONFIRMED | technical_issue | Problema técnico |
PICKEDUP | absent_client | Cliente ausente |
PICKEDUP | incorrect_address | Dirección incorrecta |
PICKEDUP | unavailable_product | Producto no disponible |
PICKEDUP | unrecognized | El cliente no reconoce el envio |
PICKEDUP | wrong_size | El tamaño del paquete es distinto |
INTRANSIT | technical_issue | Problema técnico |
DELIVERED | absent_client | Cliente ausente |
DELIVERED | incorrect_address | Dirección incorrecta |
DELIVERED | unrecognized | El cliente no reconoce el envio |
DELIVERED | rejected | Envio no esperado |
Si vamos a la pestaña de Incidencias encontraremos esta incidencia.
Aquí por ejemplo lo podemos marcar como READY para que comience el ciclo nuevamente.
En cualquier momento se pueden visualizar los detalles de un envió haciendo click sobre el ID del mismo en cualquiera de las pestañas
Devolución a Origen
En caso que haya que realizar una devolución.
El primer paso será que habrá una incidencia con alguno de los tipos previstos:
Estado del envío | nombre de la incidencia | descripción |
DELIVERED | absent_client | Cliente ausente |
DELIVERED | incorrect_address | Dirección incorrecta |
DELIVERED | unrecognized | El cliente no reconoce el envio |
DELIVERED | rejected | Envio no esperado |
INTRANSIT | technical_issue | Problema técnico |
Para generar la devolución en el entorno de testing, ir a “incidencia” y poner “Resolver incidencia”
De esta manera sabemos que este envío será devuelto a ORIGEN.
Luego “el pedido sigue en curso a ser devuelto” con lo cual vamos a las pestaña de “En curso” en el entorno de testing y lo encontraremos y podremos marcarlo como devuelto.
Una vez marcado a través del webhook nos llegará. El estado “RETURNED” significa que ya ha sido devuelto.
Estado Canceled
En el caso que el envío se encuentre en estado de "READY" o "DRAFT" podremos cancelar el envío e ingresar el motivo del mismo.
Estado del envío | nombre de la incidencia | descripción |
CANCELED | out_of_area | Fuera del Area |
CANCELED | dangerous_area | Area Peligrosa |
CANCELED | unrecognized_address | Dirección no Reconocida |
CANCELED | lost_package | Paquete perdido |
CANCELED | destroyed | Paquete destruido |
CANCELED | fraud_risk | La orden correspondiente al envío, fue detectada como sospechosa de fraude. |
CANCELED | created_by_mistake | Creado por error |
CANCELED | other | Otra Razón |
No llegara de esta forma el webHook y dentro del campo "details" en la "reason" va a figurar el campo con el nombre de la incidencia.
{ id: 'e7e81110-0e3a-11ef-b7ea-dbe13835a15f', internalCode: 'XX475738YY', shippingType: 'regular', details: { reason: 'other', pickedUpShippings: [] }, date: '2024-05-09 19:39:37', shippingStatusId: 645418, status: 'CANCELED' }
Cualquier duda abrir un ticket aquí