PLUGIN para recepción de pedidos RAPPI y PEDIDOS YA




© 2024 Napse. Todos los derechos reservados.

Revisiones

Fecha

Revisión

Cambios – Motivo

Autor

30/07/2024

1.0

Creación del documento

Andrea Asato


CONTENIDO



Alcance

  • En el presente doc se detallan las configuraciones de Bridge Omni.
    El entorno debe encontrarse en la versión 7.5.6
    Para las integraciones con Rappi y Pedidos YA se instala un plugin, el cual recibe y procesa los pedidos enviándolos a BRIDGE API Central para luego ser replicado a la tienda de surtido/facturación.
    El workflow definido es para surtido y facturación desde el POS. No aplica reserva de stock y el pasaje de estados es a demanda del operador desde el POS.
    El pedido debe ser confirmado o cancelado dentro del período determinado por Rappi sino se cancelan. Esto no queda automático sino que es a demanda.



Re_ POS API PedidosYa - Napse.msg 

Referencias

Se adjunta el script de creación del workflow:

  • Rappi
  • PedidosYA (API)


Documentación (incluye videos demo): BRIDGE OMNI - Integración con plugins de delivery

BRIDGE OMNI - MANUAL DE USO PARA INTEGRACION CON PEDIDOS YA


Videos de capacitación en Napse Academy:

https://share.linx.com.br/display/SYNTHESIS/Napse+Academy+-+OMNI?src=contextnavpagetreemode


Pasos a seguir


  • Crear canales:
    • Desde Administración/Omni/Canales en BMC
    • El código del canal luego será utilizado para configurar en el plugin OMNI


    • Dejar habilitado solo 2 colas (queueForStatusChange y queueForPublish)

    • Asociar el medio de pago (único si se quiere cerrar con el botón FINALIZAR en el POS) o si se asocia más de uno, se mostrará el botón PAGAR, se deberá seleccionar uno y solo se podrá finalizar con esos medios de pago asociados.
    • Asociar las tiendas que recibirán pedidos.
    • Al guardar, se debe replicar a las tiendas.


  • Crear centro de retiro y operador logístico
    • Centros de retiro
      • Administración/OMNI/Centro de retiro.
      • Deben crear uno por cada tienda donde se reciban pedidos.
      • Configurar con el mismo código de la tienda (exacto)
      • Al guardar se replicarán a las tiendas



    • Operadores logísticos
      • Administración/OMNI/Operador logístico
      • Deben crear uno por canal Rappi (ej: rappi) y por Pedidos YA (ej: peya).
      • Este código se utilizará en el plugin para los pedidos que tengan envío a domicilio.
      • Al guardar se replicarán a las tiendas


  • Instalación del plugin OMNI
    • Confirmar el sistema operativo donde quedará instalado el plugin (Windows/Linux)
    • El entorno debe contar con IP/puerto habilitado con salida a Internet (en el caso de Pedidos YA integración via API debe ser informado a ellos para que lo asocien a su integración para el envío de pedidos)
    • Contar con los datos de la integración suministrado por Rappi y Pedidos YA.
      • Integración, código de tienda
    • Luego les pasaremos un doc de instalación del plugin y su directorio de descarga.
    • Configurar en el archivo del plugin los nombres de canal, colas, punto de retiro según se habilite Rappi/Pedidos YA.
      • channelCode (código del canal)
      • deliveryCompany (código del operador logístico creado)
      • active: para habilitar en el plugin (por Rappi o PEYA)
      • server.url (endPoint que nos pase Rappi o PEYA)
      • credentials (chaincode_name, chaincode_id, integration_name, integration_id, chain_name, username, password, secret, grant_type)
      • queues.order_queue (cola de cambio de estado: queueForStatusChange)
      • queues.publication_queue (cola de publicaciones: queueForPublish)


  • Ejecutar el script en las tiendas y BMC para crear workflow de cada canal
    • Se adjuntan los dos scripts
      • PeyaAPI_Workflow.json
      • Rappi_Workflow.json

PeyaAPI_Workflow.jsonRappi_Workflow.json


NOTA: ajustar el ID del canal en el script antes de ejecutarlo, esto se toma de la base de datos, tabla channel.id


PARA PEDIDOS YA
//Worflow
db.getCollection("OrderWorkflow").insert({
"_id" : ObjectId("65e5e473120d448f1a7e3229"),
"code" : "default_peya_API",
"name" : "PEYA API",
"orderType" : ObjectId("5f105c882a3a154318888731"),
"disabled" : false,
"version" : NumberInt(0),
"channel" : ObjectId("6634eb19e592e13548aee0f5") // REEMPLAZAR CON EL ID DEL CANAL Pedidos Ya
}),


PARA RAPPI
//Worflow
db.getCollection("OrderWorkflow").insert({
"_id" : ObjectId("643af8a1abd50e86f311c7bc"),
"code" : "default_rappi",
"name" : "RAPPI",
"orderType" : ObjectId("5f105c882a3a154318888731"),
"disabled" : false,
"version" : NumberInt(0),
"channel" : ObjectId("66547ed0e592e12cd08cc026") // REEMPLAZAR CON EL ID DEL CANAL Rappi
}),

  • Luego de ejecutado, se podrá visualizar el workflow en BMT y BMC (desde OMNI/Configuración/Flujo de estados)


Ejemplo del workflow creado con los scripts:


  • Rabbit
    • Se debe tener configurado y activo Rabbit para API (BM Central)
    • Directorio de instalación/API/Config/default.json

EJEMPLO Cola RabbitMQ: "rabbit": {       "url": "amqp://userbrige:[email protected]:5672/bridgeomni_homo",       "active": true     }


  • Colas de exportación
    • Se deben encontrar habilitadas las siguientes exportaciones (desde Configuración/Colas de exportación) Destino queue
      • OrderHistory
      • SetItemChannelPublish





  • JOBS
    • Se deben encontrar habilitados los siguientes jobs (desde Configuración/Procesos)
      • Intensivo: export/setItemChannelPublishExport/queueStatusChange

    • Hourly: setItemChannelAutormaticPublish (para publicaciones automáticas) 

Configuración del sistema

Validar los siguientes parámetros del sistema (tiendas y BMC)

Categoría

Parámetro

Valor a configurar

Descripción

Ejemplo para GRIDO

Tienda/Ordenes

Admite crear pedidos sin stock 

Boolean

No valida stock al crear el pedido

SI

Tienda/Ordenes

Pasaje de estados automático en el workflow de ordenes web

Boolean


SI

Tienda/Ordenes

Usuario a utilizar para facturar automáticamente con BridgeCORE de la tienda

String

Username de un usuario que tenga permisos de vendedor para que sea utilizado en las facturas o NC que emite BM automáticamente. Es el usuario con el cual se asociará en la conciliación y reportes
Tiene que estar definido en la tienda

N/A porque no tienen facturación automática

Tienda/Ordenes

Ordenes: admite la edición de ítems

SI/NO

Permite configurar si un pedido puede ser surtido parcialmente en el POS.

SI

Tienda/Ordenes

Reserva stock sin considerar flag de requiere reserva para itemType norma

SI/NO

Para pedidos de Omni, si se asocia la acción "Reservar" en uno de los pasos, va a reservar para todo item aunque no se encuentre configurado por maestro como "require reserva"

NO (no hay reserva)

Tienda/Ordenes

Ordenes: Actualizar reservas de stock en central

SI/NO

Se generará un TLOG de reservas en tienda cuando se genere una reserva (solo para Omni) y se replicará a BMC, con lo cual las reservas se mantendrán sincronizadas en tienda y central (no aplica a las reservas del POS)

NO (no hay reservas)

Tienda/Ordenes

Surtido Parcial Ordenes: Medio de pago para la nota de crédito automática 

String

Código del medio de pago al que se asocia la NC automática que genera el POS cuando el pedido tiene pagos asociados y hay un surtido parcial

NCC (N/A porque no usan nota de crédito automática en el POS)

Tienda/Ordenes

Surtido Parcial Ordenes: Item genérico para la nota de crédito automática 

String

Código del artículo que se asocia a la factura y a la NC automática que genera el POS cuando el pedido tiene pagos asociados y hay un surtido parcial (tiene que existir en el maestro de ítems y tener misma configuración que el provisto por producto)

ADJFINAN (N/A porque no usan nota de crédito automática en el POS)

Tienda/Ordenes

Solicitar cantidad de paquetes al facturar 

SI/NO

Para que se pueda ingresar por popUp en la factura del pedido la cantidad de paquetes del pedido
(configurar en BMT y BMC)

NO (no lo utilizan)

Tienda/Ordenes

Indica si se usa el filtro de pedidos pendientes por defecto en el POS o no

SI/NO

Para que quede tildado por defecto el check del listado de pedidos PENDIENTES/NO HISTORICOS
De estar tildado, la consulta filtrará por los pedidos cuyo estado se encuentre definido en orderState como orderStateGroup = PENDING (configurar en BMT y BMC)

SI

Tienda/Ordenes

Mantener reservas de ordenes en el cierre de período

SI/NO

Permite definir si no se depuran las reservas en la itemInventory de aquellas reservas que provengan de pedidos de Omni
(configurar en BMT y BMC)

NO (no usan reservas)

Tienda/Ordenes

Ordenes: imprime siempre el pedido/remito luego de la facturación de pedidos en el POS 

Boolean


SI
Si necesitan que se imprima el comprobante pedido luego de la factura. Sino, solo se emitirá la factura.

Tienda/Ordenes

Ordenes: habilitar opciones de ordenes

Boolean


SI
Para que se muestre el indicador de nuevos pedidos

Tienda/Ordenes

Ordenes: intervalo (segundos) entre consultas para el indicador de nuevos pedidos en el POS 

Number


120 (segundos)
Tiempo default de consulta para ver si hay nuevos pedidos a la tienda y mostrarlo en el icono debajo de la pantalla de ventas

Tienda/Ordenes

Crear nuevo pedido en el POS

Boolean


NO
No usarán esta funcionalidad

Sistema/Sistema

Url donde se encuentra bridgeApi

String

IP donde se encuentra API en la tienda

No puede quedar definido como localhost. Tienen que ser definido con la IP de la tienda
Ejemplo:

http://10.4.201.54:8181



Opcionales o topping

  • Para que se puedan publicar los opcionales de sabor, deben asociarse a los ítems atributos con el código TOPPING

Ver PLUGIN Rappi - topping https://share.linx.com.br/x/2gRAH
Ejemplo

Publicaciones

Ver: videos de capacitación

Motivos de cancelación (PEDIDOS YA)

  • En el caso de Pedidos YA, se deben crear los motivos de cancelación en el BMC con los siguientes códigos que son los que puede procesar Pedidos YA.
  • Desde el menú Administración/OMNI/Motivos de rechazo.

  • La elección del motivo se solicitará cuando un pedido se cancele (esto se determina por configuración del paso del workflow)


Lista de códigos de motivos provistos por Pedidos YA (la descripción la pueden definir desde el proyecto)

  • "ADDRESS_INCOMPLETE_MISSTATED",
  • "BAD_WEATHER",
  • "BLACKLISTED",
  • "CARD_READER_NOT_AVAILABLE",
  • "CLOSED",
  • "CONTENT_WRONG_MISLEADING",
  • "FOOD_QUALITY_SPILLAGE",
  • "FRAUD_PRANK",
  • "ITEM_UNAVAILABLE",
  • "LATE_DELIVERY",
  • "MENU_ACCOUNT_SETTINGS",
  • "MOV_NOT_REACHED",
  • "NO_COURIER",
  • "NO_PICKER",
  • "NO_RESPONSE",
  • "OUTSIDE_DELIVERY_AREA",
  • "TECHNICAL_PROBLEM",
  • "TEST_ORDER",
  • "TOO_BUSY",
  • "UNABLE_TO_FIND",
  • "UNABLE_TO_PAY",
  • "UNPROFESSIONAL_BEHAVIOUR",
  • "WILL_NOT_WORK_WITH",
  • "WRONG_ORDER_ITEMS_DELIVERED"


       

  • Sem rótulos