对于电商业务而言,订单履约是连接客户付款和收到商品的桥梁,其效率和准确性直接决定了客户满意度和运营成本。本案例将带你构建一个强大的电商订单自动化履约中心,处理从订单接收到库存扣减、再到物流通知的全过程。
—
### 9.1 业务场景与痛点
**传统订单处理的瓶颈:**
1. **库存不同步**:当一个订单进来后,运营人员需要手动在库存管理表(如 Google Sheets 或 Excel)中找到对应商品的 SKU 并扣减库存。在高并发时段,极易发生超卖(库存已为 0 但仍在销售)或信息滞后。
2. **处理效率低**:一个订单可能包含多个商品,需要逐一核对、扣减库存、计算总价,流程繁琐,耗时耗力。
3. **异常处理难**:如果某个商品库存不足怎么办?需要立即通知采购部门,并可能需要与客户沟通。手动处理容易遗漏,导致客户等待时间过长。
4. **信息孤岛**:订单系统、库存系统、客户沟通渠道(邮件、短信)相互独立,信息流转不畅。
**我们的自动化目标:**
当 Shopify 店铺收到一个新订单后,系统自动执行以下履约流程:
1. **实时接收**:通过 `Shopify Trigger` 实时捕获新订单。
2. **逐项处理**:将订单中的每一个商品项 (Line Item) 分开,逐一进行处理。
3. **精确库存扣减**:在 Google Sheets 库存表中,根据商品 SKU 查找并原子化地扣减库存。
4. **智能预警**:在扣减库存后,检查该商品剩余库存是否低于预设的警戒线(如 10 件)。如果低于,则自动在 Slack 的采购频道发送补货提醒。
5. **订单确认**:在所有商品都成功处理完毕后,向客户发送一封详细的订单确认邮件。
6. **异常处理**:如果任何一个环节失败(如找不到 SKU、库存不足),则立即停止流程,并通知运营人员介入处理。
—
### 9.2 核心节点规划
这个高度事务性的工作流需要以下节点的精密配合:
* **`Shopify Trigger`**: 订阅“新订单创建”事件,作为流程的入口。
* **`Split in Batches`**: 这是本流程的关键节点之一。它会将订单中的多个商品项(一个数组)拆分成独立的批次(每个批次包含一个商品),以便我们能逐一处理。
* **`Google Sheets`**: 我们的库存中心。我们将使用它的“查找行(Look up)”和“更新行(Update)”功能。
* **`Set`**: 用于数据计算和状态管理,例如计算扣减后的库存量。
* **`IF`**: 用于逻辑判断,例如检查库存是否低于警戒线。
* **`Slack`**: 用于发送内部的补货预警通知。
* **`Email` / `SMTP`**: 用于向客户发送最终的订单确认邮件。
* **`NoOp`**: 用于在流程结束时,将所有批次的处理结果重新聚合起来。
—
### 9.3 分步搭建工作流
哥,这个流程相对复杂,请跟紧我的步伐。
**第一步:捕获订单 (`Shopify Trigger`)**
1. 添加 `Shopify Trigger`,配置凭证,并订阅 `orders/create` 事件。
2. 提交一个测试订单以获取数据结构。你会发现订单数据中,`line_items` 是一个包含了所有商品信息的数组。
**第二步:拆分商品项 (`Split in Batches`)**
1. 将 `Shopify Trigger` 连接到 `Split in Batches` 节点。
2. `Field to Split` 设置为 `line_items`。这是告诉节点,我们要对这个数组进行拆分。
3. `Batch Size` 设置为 `1`。这是关键,确保每个批次只有一个商品,从而实现逐项处理。
**现在,从 `Split in Batches` 节点开始,后续的所有节点都会对每一个商品项独立执行一遍。**
**第三步:查找并扣减库存 (`Google Sheets` & `Set`)**
1. **查找 SKU**:将 `Split in Batches` 连接到 `Google Sheets` 节点。`Operation` 设置为 `Look up`。在 `Sheet` 中选择你的库存表,`Column to Match On` 选择 `SKU` 列,`Value to Match` 填入 `{{ $json.sku }}`。此操作会返回找到的包含当前库存量的那一行数据。
2. **计算新库存**:连接一个 `Set` 节点。在 `Values` 中,创建一个名为 `new_stock` 的字段,其值通过表达式计算得出:`{{ $json.current_stock – $json.quantity }}`。这里 `current_stock` 来自上一步 `Google Sheets` 节点的返回结果,`quantity` 来自 `Split in Batches` 节点的输出。
3. **更新库存**:再连接一个 `Google Sheets` 节点。`Operation` 设置为 `Update`。`Row to Update` 填入上一步查找到的行号 `{{ $json.row_number }}`,然后在 `Columns to Update` 中,将 `Current Stock` 列的值更新为我们刚刚计算出的 `{{ $json.new_stock }}`。
**第四步:库存预警 (`IF` & `Slack`)**
1. 将更新库存后的 `Google Sheets` 节点连接到一个 `IF` 节点。
2. 在 `Conditions` 中,设置 `Number` 条件,检查 `{{ $json.new_stock }}` 是否 `Smaller or Equal` 于你的库存警戒线(例如 `10`)。
3. 从 `IF` 节点的 `true` 输出连接一个 `Slack` 节点。
4. 在 `Slack` 节点中,向 `#procurement` 频道发送一条紧急补货通知:
> :warning: 库存预警!
> **商品**: `{{ $json.name }}` (SKU: `{{ $json.sku }}`)
> **剩余库存**: `{{ $json.new_stock }}`
> 请尽快安排补货!
**第五步:聚合与最终确认**
`Split in Batches` 的一个高级用法是,它会在所有批次都执行完毕后,再执行连接到其 `Done` 输出端口的节点。
1. 从 `Split in Batches` 节点的 `Done` 输出端口,连接一个 `Email` 节点。(注意,不是从 `Slack` 或 `IF` 节点连接!)
2. 这意味着,只有当订单中的**所有**商品都成功扣减完库存(并且可能触发了补货提醒)之后,这个 `Email` 节点才会执行。
3. 在 `Email` 节点中,向客户 `{{ $json.customer.email }}` 发送订单确认邮件。你可以在邮件中再次汇总订单信息,告诉客户订单已确认,正在准备发货。
—
### 9.4 最终成果与价值
这个工作流是一个典型的 **ETL (Extract, Transform, Load)** 加上业务逻辑处理的综合应用。它将你的电商后端变成了一个高度自动化、精确且智能的履约中心。
* **超卖成为历史**:库存扣减是实时的、原子化的,有效避免了因延迟导致的超卖问题。
* **效率指数级提升**:无论订单多复杂,处理时间都从数十分钟缩短到几秒钟。
* **主动风险管理**:系统不再是被动地等待问题发生,而是通过库存预警,主动地进行风险管理,确保供应链的流畅。
* **完美的闭环**:从客户下单,到内部处理,再到客户沟通,形成了一个完美的自动化信息闭环,显著提升了客户体验和信任度。
通过这个案例,你不仅学会了如何处理复杂的业务流程,更体会到了 n8n 作为业务流程“粘合剂”和“发动机”的巨大威力。

















暂无评论内容