Está en la página 1de 23

SERVICIOS DE CHATBOT 1.

Abstract
Documentación de servicios a usar en Chat Bot

Jaime Sebastian Aldaz Mora


Jaime.aldaz@tipti.market
Contents
1 Objetivo: ..........................................................................................................................................2
2 Diagramas de Secuencia ..................................................................................................................2
2.1 Inicio de Sesión ........................................................................................................................2
2.2 Flujo cuando el Pedido es Finalizado .......................................................................................3
2.2.1 Cliente decide “Acreditar Valor a la Tipti Card” ..............................................................3
2.2.2 Cliente decide “Enviar Ítem Faltante” .............................................................................4
2.2.3 Cliente decide “Enviar Ítem Mal estado” ........................................................................6
2.3 Flujo de Orden Activa, estado previo a la finalización (Shopper Comprando / Shopper
Asignado / Shopper sin Asignar) ..........................................................................................................8
3 Detalle de los servicios: .................................................................................................................10
3.1 Inicio de sesión en Chat Bot...................................................................................................10
3.2 Verificación de código OTP ....................................................................................................11
3.3 Mostrar las ordenes activas ...................................................................................................12
3.4 Mostrar las ordenes entregadas ............................................................................................13
3.5 Validación de una orden ........................................................................................................14
3.6 Búsqueda de productos .........................................................................................................14
3.7 Validación de unidades de productos con inconvenientes ...................................................15
3.8 Validación para la creación de inconvenientes .....................................................................16
3.9 Listar Fechas Disponibles en un retailer ................................................................................17
3.10 Listar Horarios disponibles de una fecha por retailer ...........................................................17
3.11 Creación de inconvenientes por pedido incompleto ............................................................18
3.12 Creación de inconvenientes por pedido mal estado .............................................................19
3.13 Acreditar un valor a la Tipti Card ...........................................................................................20
3.14 Reagendar una Orden Activa .................................................................................................21
1 Objetivo:
El presente documento es dar a comunicar el funcionamiento de las APIS de Chat Bot.

2 Diagramas de Secuencia
2.1 Inicio de Sesión
Dependencias

• Cliente debe tener registrado el número en Tipti


• Cliente debe recordar su Tipti Id

Diagrama

Resumen de llamadas de APIs de Tipti

1. Llama a la verificación de usuario


2. Llama Inicio de sesión en Chat Bot
3. Llama a Verificación de código OTP
2.2 Flujo cuando el Pedido es Finalizado
2.2.1 Cliente decide “Acreditar Valor a la Tipti Card”
Descripción: Flujo de cuando existe un pedido finalizado y el cliente decide “Acreditar valor del
producto a la Tipti Card”

Dependencias
Se debe haber iniciado el flujo de Inicio de Sesión

Diagrama
Resumen de llamadas de APIs de Tipti

1. Previo el cliente debe estar autenticado en el sistema


2. Invocar a Mostrar las ordenes entregadas
3. Invocar a Búsqueda de productos
4. Invocar a Validación de unidades de productos con inconvenientes
5. Invocar a Acreditar un valor a la Tipti Card

Aclaraciones

• Se entiende que el flujo de iniciar sesión fue iniciado

2.2.2 Cliente decide “Enviar Ítem Faltante”


Descripción: Flujo de cuando existe un pedido finalizado y el cliente decide “que se le envíe el ítem
faltante”

Dependencias
Se debe iniciar el flujo de Inicio de Sesión

Diagrama
Resumen de llamadas de APIs de Tipti

1. Previo el cliente debe estar autenticado en el sistema


2. Invocar a Mostrar las ordenes entregadas
3. Invocar a Búsqueda de productos
4. Invocar a Validación de unidades de productos con inconvenientes
5. El cliente decide agendarlo para el mismo día entonces invocaría a Listar Horarios
disponibles de una fecha por retailer caso contrario se debe invocar de la siguiente manera.
a. Listar Fechas Disponibles en un retailer
b. Listar Horarios disponibles de una fecha por retailer
6. Invocar Creación de inconvenientes por pedido incompleto

Aclaraciones

• Se entiende que el flujo de iniciar sesión fue iniciado


2.2.3 Cliente decide “Enviar Ítem Mal estado”
Descripción: Flujo de cuando existe un pedido finalizado y el cliente decide que se le debe
reemplazar el producto en mal estado

Dependencias
Se debe iniciar el flujo de Inicio de Sesión

Diagrama
Resumen de llamadas de APIs de Tipti

1. Previo el cliente debe estar autenticado en el sistema


2. Invocar a Mostrar las ordenes entregadas
3. Invocar a Búsqueda de productos
4. Invocar a Validación de unidades de productos con inconvenientes
5. El cliente decide agendarlo para el mismo día entonces invocaría a Listar Horarios
disponibles de una fecha por retailer caso contrario se debe invocar de la siguiente manera.
a. Listar Fechas Disponibles en un retailer
b. Listar Horarios disponibles de una fecha por retailer
6. Invocar Creación de inconvenientes por pedido mal estado

Aclaraciones

• Se entiende que el flujo de iniciar sesión fue iniciado


2.3 Flujo de Orden Activa, estado previo a la finalización (Shopper Comprando /
Shopper Asignado / Shopper sin Asignar)
Descripción: Flujo de cuando existe una orden activa y el cliente lo quiere reagendar

Dependencias
Se debe iniciar el flujo de Inicio de Sesión
Resumen de llamadas de APIs de Tipti

1. Invocar Mostrar las ordenes activas


2. El cliente decide agendarlo para el mismo día entonces invocaría a Listar Horarios
disponibles de una fecha por retailer caso contrario se debe invocar de la siguiente manera.
a. Listar Fechas Disponibles en un retailer
b. Listar Horarios disponibles de una fecha por retailer
3. Reagendar una Orden Activa
Aclaraciones

• Se entiende que el flujo de iniciar sesión fue iniciado

3 Detalle de los servicios:


3.1 Inicio de sesión en Chat Bot
Propósito: Inicio de sesión para consumo de APIs en Chat Bot de Tipti
Pública: Si
URL: /api/v3/chatbot/user

Ejemplo de inicio de sesión


Petición: api/v3/chatbot/user? tipti_id = 123456
Response:

"first_name": "Nombre",

"last_name": "Apellido",

"user_id": "123456",

"token": "",

"status": true,

"alive": false

• El campo “status” es true si se pudo autenticar caso contrario false


• El campo “alive” es true si el usuario tiene una sesión activa durante 24 horas, caso contrario
false
• Adicional este endpoint enviará un correo y un SMS al usuario con el código para verificar la
cuenta en Tipti

3.2 Verificación de código OTP


Propósito: Despues de iniciar sesión se debe validar el usuario con un código OTP que es enviado al
correo y con un SMS al número registrado
Pública: Si
URL: /api/v3/chatbot/user/validate/

Ejemplo de verificación de código


Petición: /api/v3/chatbot/user/validate/?code_valid=1621769

Response:

"phone": "+5930996654335",

"first_name": "Nombre",

"last_name": "Apellido",

"chatbot_isconfirm": true,

"user": "correo@gmail.com",

"client_id": 123456,
"user_id": 123456,

"token":
"exx0eXAiOiJKVxxxxxxxxxxiOiJIUzI1NiJ9.eyJ1c2VyXxxkIjo0MjYxNTAsImVtYWxxxxxxY29mcmUuc2hha2lyxx
xxxxxxxx5jb20iLCJ0eXBlIjoxxxx1c2VybmFtZSI6XxxxxxxlLnNoYWtpcmFAZ21hxxxxxx9tIiwxxxxxxjo4ODEw
MjkxMDAyOX0.xxxxxxeEjWsTPL_sRpXdY2BX562Cxxxxxx01eaG7_IY",

"status": true

• El campo “status” es true si se pudo autenticar caso contrario false


• El campo “token” servirá para el consumo de las siguientes APIs

3.3 Mostrar las ordenes activas


Propósito: Mostrar las 5 órdenes activas que tiene un usuario en una semana, deben de encontrarse
en el estado previo de compra finalizada, excluyendo los estados de Procesando Pago y Pago
Rechazado.
Pública: No, es necesario tener un token válido
URL: /api/v3/chatbot/active_orders/

Ejemplo para Mostrar las ordenes activas


Petición: /api/v3/chatbot/active_orders

Headers:

Authorization: {campo obtenido en la verificación de código}

Response:

{
"available_orders": [

"num_order": "1234567",

"retailer_name": "Megamaxi Scala"

},

"num_order": "1234568",

"retailer_name": "Supermaxi Cumbayá"


},

],

"count": 2,

"next": "https://api.develop.tipti.market/api/v3/chatbot/active_orders/?page=2",

"previous": null,

"status": "MULTIPLE"

3.4 Mostrar las ordenes entregadas


Propósito: Mostrar las 5 órdenes entregadas que tiene un usuario en una semana, deben de
encontrarse facturadas.
Pública: No, es necesario tener un token válido
URL: /api/v3/chatbot/orders_delivered/

Ejemplo para Mostrar las ordenes entregadas


Petición: /api/v3/chatbot/orders_delivered/

Headers:

Authorization: {campo obtenido en la verificación de código}

Response:

"count": 2,

"next": null,

"previous": null,

"results": [

"num_order": "123456",

"retailer_name": "Gran Akí Tumbaco",

"date": "2023-12-13"
},

"num_order": "1234568",

"retailer_name": "Supermaxi Cumbayá",

"date": "2023-12-13"

3.5 Validación de una orden


Propósito: Valida que la orden pertenezca al cliente
Pública: No, es necesario tener un token válido
URL: /api/v3/chatbot/validate_order/

Ejemplo para validar de una pertenezca al cliente


Petición: /api/v3/chatbot/validate_order/?order_id=1234567

Headers:

Authorization: {campo obtenido en la verificación de código}

Response:

"status": true

3.6 Búsqueda de productos


Propósito: Buscar el producto proporcionada por el usuario dentro de los productos que se
encuentran en el pedido relacionado.
Pública: No, es necesario tener un token válido
URL: api/v3/chatbot/match_product/

Ejemplo para búsqueda de productos


Petición: /api/v3/chatbot/match_product/?order_id=1727213&query=pavo&page=1

Headers:

Authorization: {campo obtenido en la verificación de código}

Response:

{
"search": [

"id": 5946,

"price": 4.6,

"name": "Salchichas de Pavo Fritz Tipo II",

"allow_item": true

],

"match": "found"

3.7 Validación de unidades de productos con inconvenientes


Propósito: Valida que las unidades de productos con inconvenientes que el cliente ingresó sean
válidas, es decir no supere al máximo de lo pedido originalmente
Pública: No, es necesario tener un token válido
URL: /api/v3/chatbot/product_units/

Ejemplo
Petición: /api/v3/chatbot/product_units/

Headers:

Authorization: {campo obtenido en la verificación de código}

Body:
Nombre Valor Descripción
order_id 1727212 Id de la orden que el cliente
seleccionó
stock_item_id 5946 Item que seleccionó el cliente
quantity 1 Cantidad del item

Response en caso exitoso

"status": true

Response en caso de tener algún error


{

"response": false

3.8 Validación para la creación de inconvenientes


Propósito: Valida que la multiplicación del número de ítems con el valor del ítem no supere el monto
de $10, validación del número de inconvenientes y si la orden no tiene un inconveniente ya creado
Pública: No, es necesario tener un token válido
URL: /api/v3/chatbot/validate_credit_value_to_tipti_card/

Ejemplo
Petición: /api/v3/chatbot/validate_credit_value_to_tipti_card/

Headers:

Authorization: {campo obtenido en la verificación de código}

Body:
Nombre Valor Descripción
order_id 1727212 Id de la orden que el cliente
seleccionó
stockitem_id 5946 Item que seleccionó el cliente
quantity 1 Cantidad del item

Response en caso exitoso

"status": true

Response en caso de tener algún error

"status": false,

"num_order": 1727212,

"num_incidents": 3,

"message": ""

}
3.9 Listar Fechas Disponibles en un retailer
Propósito: Lista las 5 primeras fechas disponibles de un retailer, y si no hay horarios del día solo
muestra la última opción.
Pública: No, es necesario tener un token válido
URL: /api/v3/chatbot/order_available_schedule_dates_for_delivery

Ejemplo
Petición: /api/v3/chatbot/order_available_schedule_dates_for_delivery?order_id=1727212

Headers:

Authorization: {campo obtenido en la verificación de código}

Response
{

"count": 5,

"next": null,

"previous": null,

"results": [

"2023-12-19",

"2023-12-20",

"2023-12-21",

"2023-12-22",

"2023-12-23"

3.10 Listar Horarios disponibles de una fecha por retailer


Propósito: Listar horarios disponibles de una fecha por retailer
Pública: No, es necesario tener un token válido
URL: /api/v3/chatbot/order_available_schedule_hours_for_delivery

Ejemplo
Petición: /api/v3/chatbot/order_available_schedule_hours_for_delivery?date=2023-12-
13&order_id=1727210&page=1

Headers:

Authorization: {campo obtenido en la verificación de código}

Response

"count": 24,
"next": "https://127.0.0.1:8000/api/v3/chatbot/order_available_schedule_hours_for_delivery/?date=2023-
12-13&order_id=1727210&page=2",

"previous": null,

"results": [

"09:00-09:30",

"09:30-10:00",

"10:00-10:30",

"10:30-11:00",

"11:00-11:30"

3.11 Creación de inconvenientes por pedido incompleto


Propósito: Crear un nuevo pedido de un producto específico que tuvo algún inconveniente en una
orden ya entregada
Pública: No, es necesario tener un token válido
URL: api/v3/chatbot/create_incident_missing_products/

Ejemplo
Petición: /api/v3/chatbot/create_incident_missing_products

Headers:

Authorization: Token

Body:

Nombre Valor Descripción


order_id 1727212 Id de la orden que el cliente
seleccionó
stockitem_id 5946 Item que seleccionó el
cliente
incident_detail producto faltante Detalle para el
inconveniente
quantity 1 Cantidad del item
date_order 2023-12-13 Fecha para la nueva orden
hours_order 17:14-17:44 Hora para la nueva orden

Response en caso de éxito

Status: 200

"status": true,
"code": "success",

"message": "Incident created"

Response en caso de fallo

"message": "Ya existe una incidencia en este pedido",

"status": false

3.12 Creación de inconvenientes por pedido mal estado


Propósito: Crear un nuevo pedido de un producto en mal estado que tuvo algún inconveniente en
una orden ya entregada
Pública: No, es necesario tener un token válido
URL: api/v3/chatbot/create_incident_product_in_bad_condition/

Ejemplo
Petición: /api/v3/chatbot/create_incident_product_in_bad_condition/

Headers:

Authorization: Token

Body:

Nombre Valor Descripción


order_id 1727212 Id de la orden que el cliente
seleccionó
stockitem_id 5946 Item que seleccionó el
cliente
incident_detail producto en mala condición Detalle para el
chatbot test inconveniente
quantity 1 Cantidad del item
date_order 2023-12-13 Fecha para la nueva orden
hours_order 17:14-17:44 Hora para la nueva orden

Response en caso de éxito

Status: 200

"status": true,
"code": "success",

"message": "Incident created"

Response en caso de fallo

"message": "Ya existe una incidencia en este pedido",

"status": false

3.13 Acreditar un valor a la Tipti Card


Propósito: Acreditar un valor a la Tipti Card cuando la orden ya está facturada
Pública: No, es necesario tener un token válido
URL: /api/v3/chatbot/credit_value_to_tipti_card/

Ejemplo
Petición: /

Headers:

Authorization: Token

Body:

Nombre Valor Descripción


order_id 1727212 Id de la orden que el cliente
seleccionó
stockitem_id 5946 Item que seleccionó el
cliente
incidence_type producto_incorrecto Detalle del incidente
quantity 1 Cantidad del item

Response en caso de éxito

Status: 200

"message": "Acreditación a la Tipti Card exitosa",

"status": true,
"code": "success"

Response en caso de fallo

"status": false,

"code": "quantity_greater_than_order_item_quantity",

"message": "Quantity is greater than the order item quantity"

3.14 Reagendar una Orden Activa


Propósito: Reagendar una orden activa
Pública: No, es necesario tener un token válido
URL: /api/v3/chatbot/order_reschedule/

Headers:

Authorization: Token

Body
{
"new_schedule_date": "2024-02-02",
"new_schedule_hour": "21:00-22:00",
"order_id": 1646967
}

Response en caso de éxito

respuesta:

"message": "Order rescheduled"

También podría gustarte