通过使用MongoDB Change Streams和Atlas Triggers进行实时更新,构建快速、可靠的全渠道订购。
行业: 零售
产品: MongoDB Atlas、MongoDB Change Streams、MongoDB Atlas Triggers
解决方案概述
如今,客户期望获得利用在线和线下渠道的无缝购物体验,例如在线购买后自提或送货上门。然而,零售商在实现支持全渠道购物体验的技术解决方案方面遇到了困难。零售商需要一个灵活的系统,以提供实时可见性、处理动态流量模式并支持跨所有客户数接触点的现代集成。
该解决方案演示了如何使用MongoDB Atlas构建全渠道电商网站。该演示允许用户选择自己喜欢的送货方式(BOPIS 或送货上门),并在实时追踪订单进度。通过利用Change Streams、Atlas Triggers和灵活的document model等关键 MongoDB 功能,您将学习如何创建强大、可扩展的全渠道订购系统。
参考架构
该解决方案使用MongoDB Change Streams和Atlas Triggers来启用跨多个应用程序的实时数据操作。该架构由两个主要组件组成:实时应用和MongoDB Atlas。
实时应用程序包括响应数据库更改的任何应用程序,例如电子商务、配送中心、仓库和库存应用程序。
该解决方案具有以下工作流程:
应用程序的操作会产生数据修改,例如订单状态更新。
该事件在MongoDB Atlas的
orders集合中注册。这些更改会记录在使用
oplog.rs集合的oplog中。Change Streams API会监控这些更改。您可以监控集合、数据库或集群级别的更改,并使用MongoDB 聚合框架过滤器特定更改。
根据您的架构需求,您可以:
在应用程序端执行更新。
通过 Atlas Functions 触发自动化任务。
这种架构为各种实际应用程序提供了基础,例如:
实时通知:自动向客户发送订单取货通知。
反应式系统:智能库存管理,具备自动补货功能。
事件驱动架构:实时微服务同步,并可选择集成Kafka。
变更数据采集:全系统产品价格即时更新。
实时分析:使用机器学习模型即时重新计算欺诈风险。
图 1。全渠道订购解决方案架构
数据模型方法
此解决方案的数据模型使用两个主节点 (primary node in the replica set)集合,名为 products 和 orders。每个集合都使用 field: value 格式提供存储数据的有组织表示形式。
产品集合
products集合存储全面的产品信息,如下所示:
ID、名称和唯一产品标识符(例如 SKU)。
分类字段,例如
masterCategory、subCategory和articleType。带有
amount和currency字段的嵌套定价对象。特定于产品的属性,例如自动补货状态和基色。
库存相关字段和产品元数据。
图 2。products集合中的示例文档
订单集合
orders集合追踪订单详细信息,包括以下内容:
订单和用户的唯一标识符。
每个订单的产品数组。
status_history数组,它捕获带有时间戳的订单状态进展。订单类型之间的区别(在线购买、存储提货与在线购买、送货上门)。
特定订单的送货地址。
基于交付类型的状态工作流程:
BOPIS 订单会显示“进程中”或“准备取货”等状态。
送货上门订单会经历以下状态:“进程中”、“准备交付”、“已从仓库提货”、“在途”和“已交付”。
图 3。orders集合中的示例文档
构建解决方案
此解决方案使用此 GitHub 存储库。以下步骤概述了如何设立演示。有关完整指南和实现详情,请参阅存储库的 README。
填充演示数据库
在您的Atlas帐户中预配一个集群,并使用演示所需的数据填充数据库。您可以使用 mongorestore 用存储在 GitHub存储库的/dump/leafy_popup_store 文件夹中的必要转储数据快速填充数据库。
配置您的应用程序前端
将 GitHub存储库克隆到本地计算机,配置环境变量并安装依赖项。最后,在本地运行应用,并通过 http://localhost:8080/cart. 访问前端。
关键要点
灵活性和速度:MongoDB 的灵活性使您能够轻松调整数据结构,从而加快产品上市速度并提供一致的全渠道体验。
实时功能:Change Streams 和 Atlas Triggers 等功能启用实时数据处理,这对于订单跟踪和库存更新等任务至关重要。
智能架构:MongoDB 具有可扩展的且灵活的架构,可轻松集成 Change Streams 和 Atlas Triggers 等工具,而无需额外的应用程序层。
作者
Angie Guemes, MongoDB
Florencia Arin, MongoDB