Cree pedidos omnicanal rápidos y confiables aprovechando actualizaciones en tiempo real mediante MongoDB Change Streams y Atlas Triggers.
caso de uso: Catálogo, Omnichannel Ordering
Industrias: Comercio minorista
Productos: MongoDB Atlas, MongoDB Change Streams, MongoDB Atlas Triggers
Resumen de la solución
Hoy en día, los clientes esperan experiencias de compra fluidas que utilicen canales online y offline, como la compra online con recogida o entrega a domicilio. Sin embargo, a los minoristas les cuesta implementar soluciones técnicas que favorezcan las experiencias de compra omnicanal. Necesitan un sistema flexible que ofrezca visibilidad en tiempo real, gestione patrones de tráfico dinámicos y permita integraciones modernas en todos los puntos de contacto del cliente.
Esta solución demuestra cómo compilar un sitio web de comercio electrónico omnicanal utilizando MongoDB Atlas. La demo permite a los usuarios elegir su método de envío preferido (BOPIS o entrega a domicilio) y rastrear el progreso de su pedido en tiempo real hasta la entrega. Aprovechando características clave de MongoDB, como Change Streams, Atlas Triggers y el flexible modelo orientado a documentos, aprenderás a crear un sistema de pedidos omnicanal robusto y escalable.
Arquitecturas de Referencia
Esta solución utiliza MongoDB Change Streams y Atlas Triggers para habilitar operaciones de datos en tiempo real en múltiples aplicaciones. La arquitectura consta de dos componentes principales: aplicaciones en tiempo real y MongoDB Atlas.
Aplicaciones en tiempo real incluyen cualquier aplicación que responda a cambios en la base de datos, como aplicaciones de ecommerce, centro de distribución, almacén e inventario.
Esta solución tiene el siguiente flujo de trabajo:
Una acción de una aplicación produce una modificación de datos, como una actualización del estado de un pedido.
El evento queda registrado en la
orderscolección en MongoDB Atlas.Estos cambios se registran en el oplog, que utiliza la colección
oplog.rs.La API de flujos de cambios monitoriza estos cambios. Puede monitorizar los cambios a nivel de colección, base de datos o clúster, y filtrar cambios específicos mediante el marco de agregación de MongoDB.
Según sus necesidades de arquitectura, se puede:
Realiza una actualización en la parte de la aplicación.
Activa una tarea automatizada a través de Atlas Functions.
Esta arquitectura proporciona una base para diversas aplicaciones del mundo real, como:
Notificaciones en tiempo real: Alertas automáticas al cliente para la preparación del pedido para su recogida.
Sistemas reactivos: Gestión inteligente de inventarios con reposición automática.
Arquitectura orientada a eventos: Sincronización de microservicios en tiempo real con integración opcional de Kafka.
Captura de datos modificados: actualizaciones inmediatas de precios de productos en todo el sistema.
Análisis en tiempo real: recalculación instantánea del riesgo de fraude utilizando modelos de aprendizaje automático.
Figura 1. Arquitectura de la solución de pedidos omnicanal
Enfoque de modelo de datos
El modelo de datos de esta solución utiliza dos colecciones principales, llamadas products y orders. Cada colección utiliza un formato field: value para proporcionar una representación organizada de los datos almacenados.
Colección de productos
La colección products almacena información de producto detallada, como la siguiente:
ID, nombre y un identificador único de producto, como SKU.
Campos de categorización, como
masterCategory,subCategoryyarticleType.Objetos anidados para precios con campos
amountycurrency.Atributos específicos del producto, como el estado de autoreposición y el color base.
Campos relacionados con el inventario y metadatos de productos.
Figura 2. Ejemplo de documento en la colección products
Colección de órdenes
La colección orders rastrea los detalles de pedidos, incluidos los siguientes:
Identificadores únicos para pedidos y usuarios.
Un arreglo de productos para cada pedido.
status_historyarreglo, que captura la progresión de los estados de la orden con marcas de tiempo.Diferenciación entre tipos de pedido (Comprar online, recoger en tienda vs. Comprar online, recibir en casa).
Direcciones de envío específicas de la orden.
Flujos de trabajo por estatus según el tipo de entrega:
Los pedidos BOPIS muestran estados, como "en proceso" o "listo para recoger".
Los pedidos de entrega a domicilio avanzan a través de los siguientes estados: "En proceso", "Listo para ser entregado", "Recogido de almacén", "En tránsito" y "Entregado".
Figura 3. Ejemplos de documentos en la colección orders
Compilar la solución
Esta solución utiliza este repositorio de GitHub. El siguiente procedimiento describe cómo configurar la demostración. Para una guía completa y detalles de implementación, consulta el README del repositorio.
Completar la base de datos de demostración
Provisione un clúster dentro de su cuenta de Atlas y poblé su base de datos con los datos requeridos para la demo. Puede utilizar mongorestore para poblar rápidamente la base de datos con los datos de vaciado necesarios, almacenados en la carpeta /dump/leafy_popup_store en el repositorio de GitHub.
Agregar el disparador de estado del pedido
Crea un disparador de base de datos que escuche la orders colección en busca de eventos de inserción y actualización. Esto ejecuta una función que puedes copiar del repositorio de GitHub.
Dado que esta demostración implica que un cliente realice un pedido desde un sitio web de comercio electrónico, el activador imita los procesos necesarios para actualizar el estado del pedido cada 10 segundos, avanzando a través de las etapas del pedido hasta que se marca como entregado. Los procesos simulados incluyen empleados de almacén gestionando un pedido, servicios postales entregando paquetes o empleados de tienda empacando un pedido.
Configura el frontend de tu aplicación
Clona el repositorio de GitHub en tu máquina local, configura tus variables de entorno e instala las dependencias. Por último, ejecuta la aplicación localmente y accede al frontend en http://localhost:8080/cart.
Lecciones clave
Flexibilidad y velocidad: la flexibilidad de MongoDB le permite adaptar sus estructuras de datos con facilidad, lo que genera un tiempo de comercialización más rápido y una experiencia omnicanal consistente.
Capacidades en tiempo real: Funcionalidades como Change Streams y Atlas Triggers permiten el procesamiento de datos en tiempo real, lo cual es esencial para tareas como el seguimiento de pedidos y actualizaciones de inventario.
Arquitectura inteligente: La arquitectura escalable y flexible de MongoDB facilita la integración de herramientas como Change Streams y Atlas Triggers sin capas extra de aplicación.
Author
Angie Guemes, MongoDB
Florencia Arin, MongoDB