Docs 菜单
Docs 主页
/

在 MongoDB 上构建现代全渠道订单系统

通过使用MongoDB Change Streams和Atlas Triggers进行实时更新,构建快速、可靠的全渠道订购。

使用案例: 目录全渠道订购

行业: 零售

产品: MongoDB AtlasMongoDB Change StreamsMongoDB Atlas Triggers

如今,客户期望获得利用在线和线下渠道的无缝购物体验,例如在线购买后自提或送货上门。然而,零售商在实现支持全渠道购物体验的技术解决方案方面遇到了困难。零售商需要一个灵活的系统,以提供实时可见性、处理动态流量模式并支持跨所有客户数接触点的现代集成。

该解决方案演示了如何使用MongoDB Atlas构建全渠道电商网站。该演示允许用户选择自己喜欢的送货方式(BOPIS 或送货上门),并在实时追踪订单进度。通过利用Change StreamsAtlas Triggers和灵活的document model等关键 MongoDB 功能,您将学习如何创建强大、可扩展的全渠道订购系统。

该解决方案使用MongoDB Change Streams和Atlas Triggers来启用跨多个应用程序的实时数据操作。该架构由两个主要组件组成:实时应用MongoDB Atlas

实时应用程序包括响应数据库更改的任何应用程序,例如电子商务、配送中心、仓库和库存应用程序。

该解决方案具有以下工作流程:

  1. 应用程序的操作会产生数据修改,例如订单状态更新。

  2. 该事件在MongoDB Atlas的 orders集合中注册。

  3. 这些更改会记录在使用 oplog.rs集合的oplog中。

  4. Change Streams API会监控这些更改。您可以监控集合、数据库或集群级别的更改,并使用MongoDB 聚合框架过滤器特定更改。

  5. 根据您的架构需求,您可以:

    • 在应用程序端执行更新。

    • 通过 Atlas Functions 触发自动化任务。

这种架构为各种实际应用程序提供了基础,例如:

  • 实时通知:自动向客户发送订单取货通知。

  • 反应式系统:智能库存管理,具备自动补货功能。

  • 事件驱动架构:实时微服务同步,并可选择集成Kafka。

  • 变更数据采集:全系统产品价格即时更新。

  • 实时分析:使用机器学习模型即时重新计算欺诈风险。

使用 Triggers 和 Change Streams 的库存管理工作流。

图 1。全渠道订购解决方案架构

此解决方案的数据模型使用两个主节点 (primary node in the replica set)集合,名为 productsorders。每个集合都使用 field: value 格式提供存储数据的有组织表示形式。

products集合存储全面的产品信息,如下所示:

  • ID、名称和唯一产品标识符(例如 SKU)。

  • 分类字段,例如 masterCategorysubCategoryarticleType

  • 带有 amountcurrency 字段的嵌套定价对象。

  • 特定于产品的属性,例如自动补货状态和基色。

  • 库存相关字段和产品元数据。

产品集合概览。

图 2。products集合中的示例文档

orders集合追踪订单详细信息,包括以下内容:

  • 订单和用户的唯一标识符。

  • 每个订单的产品数组。

  • status_history 数组,它捕获带有时间戳的订单状态进展。

  • 订单类型之间的区别(在线购买、存储提货与在线购买、送货上门)。

  • 特定订单的送货地址。

  • 基于交付类型的状态工作流程:

    • BOPIS 订单会显示“进程中”或“准备取货”等状态。

    • 送货上门订单会经历以下状态:“进程中”、“准备交付”、“已从仓库提货”、“在途”和“已交付”。

订单集合文档概述

图 3。orders集合中的示例文档

此解决方案使用此 GitHub 存储库。以下步骤概述了如何设立演示。有关完整指南和实现详情,请参阅存储库的 README

1

在您的Atlas帐户中预配一个集群,并使用演示所需的数据填充数据库。您可以使用 mongorestore 用存储在 GitHub存储库的/dump/leafy_popup_store 文件夹中的必要转储数据快速填充数据库。

2

创建一个数据库触发器,用于侦听 orders集合中的插入和更新事件。这会运行一个函数,您可以从 GitHub 存储库复制该函数。

由于此演示涉及客户数从电商网站订购,因此trigger会模仿每 10 秒更新一次订单状态所需的流程,逐步完成各个订单阶段,直到将订单标记为已送达。模拟的流程包括管理订单的仓库员工、递送包的邮政服务或包装订单的存储员工。

3

将 GitHub存储库克隆到本地计算机,配置环境变量并安装依赖项。最后,在本地运行应用,并通过 http://localhost:8080/cart. 访问前端。

  • 灵活性和速度:MongoDB 的灵活性使您能够轻松调整数据结构,从而加快产品上市速度并提供一致的全渠道体验。

  • 实时功能:Change Streams 和 Atlas Triggers 等功能启用实时数据处理,这对于订单跟踪和库存更新等任务至关重要。

  • 智能架构:MongoDB 具有可扩展的且灵活的架构,可轻松集成 Change Streams 和 Atlas Triggers 等工具,而无需额外的应用程序层。

  • Angie Guemes, MongoDB

  • Florencia Arin, MongoDB

  • 事件驱动的库存管理系统

  • 利用收据数据进行实时个性化

  • RFID:实时产品跟踪

后退

构建库存管理系统

在此页面上