订单草稿触发机制,分步说明
关于订单草稿的Shopify Flow分步教程:状态、订单项、标签、备注、属性以及“选择加入”邮件和地址触发器。
订单草稿是B2B报价、批发订单和电话订单的归属地,而Shopify Flow对此几乎没有任何支持。这十个触发器涵盖了订单草稿的整个生命周期:编辑、状态、标签、备注以及(可选)联系人数据。
本页内容:预订单更新, 预订单状态已更改, 预订单明细已更改, 预订单已添加标签, 预订单已移除标签, 预订单备注已更改, 预订单属性已更改, 预订单邮箱已更改, 预订单收货地址已更改, 预订单账单地址已更改

《订单草稿》更新
每次保存订单草稿时都会触发火焰特效。
| 火灾源于 | Shopify Webhook |
| 权限 | 《订单草稿》数据访问 |
| 已开启 | 启用一个使用该功能的 Shopify Flow 工作流程即可将其开启。该功能的独立开关位于应用的**“触发器**”页面上。 |
用于
- 将报价同步到CRM系统。
- 在您确定哪种更具体的触发器适用之前,这是一个通用的解决方案。
“订单草稿更新”会向您的工作流程发送什么
| Shopify Flow中的变量 | 类型 | 内容简介 |
|---|---|---|
draftOrder |
对象 | 已更新的订单草稿 |
draftOrder.id |
ID | |
draftOrder.name |
文本 | |
draftOrder.status |
文本 | |
draftOrder.totalPrice |
文本 | |
draftOrder.currencyCode |
文本 | |
draftOrder.tags |
文本 | |
draftOrder.note |
文本 | |
draftOrder.invoiceUrl |
文本 | |
draftOrder.updatedAt |
文本 | |
payload |
文本 | 包含已更新订单草稿 GID 的 JSON 对象(例如:{"id":"gid://shopify/Order/123"}) |
eventId |
文本 | 此事件的 ID。请在应用的“事件历史记录”中搜索该 ID,以查看具体发送了什么内容。 |
示例:将每笔报价变更同步到 CRM 中
- 选择**“订单草稿更新**”作为触发器。
- 添加**“发送 HTTP 请求”**功能,支持
{{draftOrder.id}}、{{draftOrder.name}}、{{draftOrder.status}}和{{draftOrder.totalPrice}} {{draftOrder.currencyCode}}。 - 启用该工作流程。
订单草稿状态已更改
当订单草稿在 open、invoice_sent 和 completed 之间转移时触发。
| 火灾源于 | Shopify Webhook 结合变更检测 |
| 权限 | 《订单草稿》数据访问 |
| 已开启 | 启用一个使用该功能的 Shopify Flow 工作流程即可将其打开。该功能的独立开关位于应用的**“触发器**”页面上 |
用于
- 在发送发票时启动提醒流程。
- 当报价转为订单时,请告知客户经理。
“订单草稿状态变更”会向您的工作流程发送什么
| Shopify Flow中的变量 | 类型 | 内容简介 |
|---|---|---|
draftOrder |
对象 | 状态发生变化的订单草稿 |
draftOrder.id |
ID | |
draftOrder.name |
文本 | |
draftOrder.status |
文本 | |
oldStatus |
文本 | 该订单草稿的先前状态(已开启 / 发票已发送 / 已完成) |
newStatus |
文本 | 订单草稿的新状态(已开启 / 发票已发送 / 已完成) |
eventId |
文本 | 此事件的 ID。请在应用的“事件历史记录”中搜索该 ID,以查看具体发送了什么内容。 |
示例:在发票开具后三天提醒客户
- 将**“选秀顺位状态发生变化**”设为触发器。
- 添加一个条件:
newStatus等于invoice_sent。 - 添加**“等待** 3 天”,然后使用
{{draftOrder.name}}向您的电子邮件工具发送 HTTP 请求。 - 启用该工作流程。
订单项草案已更改
当订单草稿中的商品发生变更(添加、移除、数量、价格或变体)时触发。其changes.items结构与订单触发器相同。
| 火灾源于 | Shopify Webhook 结合变更检测 |
| 权限 | 《订单草稿》数据访问 |
| 已开启 | 启用一个使用该功能的 Shopify Flow 工作流程即可将其开启。该功能的独立开关位于应用的**“触发器**”页面上。 |
用于
- 当销售代表在报价单中降低价格时,需经批准。
- 确保预订系统与报价保持同步。
“订单草稿订单项变更”会向您的工作流程发送什么
| Shopify Flow中的变量 | 类型 | 内容简介 |
|---|---|---|
draftOrder |
对象 | 订单项发生变更的订单草稿 |
draftOrder.id |
ID | |
draftOrder.name |
文本 | |
draftOrder.status |
文本 | |
changes |
对象 | 订单项变更:新增、删除、数量、价格及变体变更,并附带其新旧数值 |
changes.items |
对象列表 | 检测到的更改列表 |
changes.items (each).changeType |
文本 | 变更类型:新增、删除、数量变更、价格变更、变体变更 |
changes.items (each).lineItemId |
ID | 订单项编号(如有) |
changes.items (each).productTitle |
文本 | 产品名称 |
changes.items (each).variantTitle |
文本 | 变体标题 |
changes.items (each).oldVariantId |
ID | 旧版本 GID(用于已删除或变体已更改的情况) |
changes.items (each).newVariantId |
ID | 新变体 GID(用于 added 或 variant_changed) |
changes.items (each).oldProductId |
ID | 旧产品的GID(适用于已删除或变体已更改的情况) |
changes.items (each).newProductId |
ID | 新产品 GID(用于“已添加”或“变体已更改”) |
changes.items (each).oldQuantity |
数字 | 旧数量(用于 quantity_changed) |
changes.items (each).newQuantity |
数字 | 新数量(用于 quantity_changed) |
changes.items (each).oldPrice |
文本 | 旧价格(适用于 price_changed) |
changes.items (each).newPrice |
文本 | 新价格(适用于 price_changed) |
changes.items (each).lineItemData |
文本 | 完整的订单项数据(JSON格式) |
eventId |
文本 | 此事件的 ID。请在应用的“事件历史记录”中搜索该 ID,以查看具体发送了什么内容。 |
示例:当报价价格发生变更时,需申请批准
- 将**“订单草稿中订单项发生变更**”设为触发器。
- 添加一个条件:
changes.items中至少有一个满足changeType等于price_changed。 - 添加订单草稿标签
needs-approval,并向销售负责人发送内部邮件,其中包含已修改条目的oldPrice和newPrice(通过 Liquidfor循环遍历changes.items)。 - 启用该工作流程。
已添加订单草稿标签
当订单草稿中至少添加了一个标签时触发。
| 火灾源于 | Shopify Webhook 结合变更检测 |
| 权限 | 《订单草稿》数据访问 |
| 已开启 | 启用一个使用该功能的 Shopify Flow 工作流程即可将其开启。该功能的专用开关位于应用的**“触发器**”页面上。 |
用于
- 请销售人员通过给报价单添加标签来启动流程:
approved、rush。
“已添加的订单草稿标签”会向您的工作流程发送什么
| Shopify Flow中的变量 | 类型 | 内容简介 |
|---|---|---|
draftOrder |
对象 | 标签发生变化的订单草稿 |
draftOrder.id |
ID | |
draftOrder.name |
文本 | |
draftOrder.status |
文本 | |
draftOrder.tags |
文本 | |
addedTags |
文本 | 添加到订单草稿中的标签列表(以逗号分隔) |
removedTags |
文本 | 在同一更新中从订单草稿中移除的标签的逗号分隔列表(可能为空) |
currentTags |
文本 | 订单草稿中所有当前标签的以逗号分隔的列表 |
previousTags |
文本 | 本次更新之前,订单草稿中所有先前标签的以逗号分隔的列表 |
eventId |
文本 | 此事件的 ID。请在应用的“事件历史记录”中搜索该 ID,以查看具体发送了什么内容。 |
示例:报价一经批准,即通知财务部门
- 将**“选秀顺位标签已添加**”设为触发条件。
- 添加条件:
addedTags包含approved。 - 添加“通过
{{draftOrder.name}}向财务部门发送内部邮件”这一选项。 - 启用该工作流程。
已删除订单草稿标签
当订单草稿中至少有一个标签被移除时触发。
| 火灾源于 | Shopify Webhook 结合变更检测 |
| 权限 | 《订单草稿》数据访问 |
| 已开启 | 启用一个使用该功能的 Shopify Flow 工作流程即可将其开启。其专属开关位于应用的**“触发器**”页面上 |
用于
- 撤销“添加匹配标签”工作流程所执行的操作。
“已删除的订单草稿标签”会向您的工作流程发送什么
| Shopify Flow中的变量 | 类型 | 内容简介 |
|---|---|---|
draftOrder |
对象 | 标签发生变化的订单草稿 |
draftOrder.id |
ID | |
draftOrder.name |
文本 | |
draftOrder.status |
文本 | |
draftOrder.tags |
文本 | |
addedTags |
文本 | 在同一更新中添加到订单草稿中的标签列表(以逗号分隔,可以为空) |
removedTags |
文本 | 从订单草稿中移除的标签的逗号分隔列表 |
currentTags |
文本 | 订单草稿中所有当前标签的逗号分隔列表 |
previousTags |
文本 | 本次更新之前,订单草稿中所有先前标签的以逗号分隔的列表 |
eventId |
文本 | 此事件的 ID。请在应用的“事件历史记录”中搜索该 ID,以查看具体发送了什么内容。 |
示例:当批准被撤销时,通知销售部门
- 将**“移除选秀顺位标签**”设为触发器。
- 添加条件:
removedTags包含approved。 - 添加“向销售代表**发送内部邮件”**选项。
- 启用该工作流程。
订单草稿说明已修改
在订单草稿的票据被添加、修改或结清时触发。
| 火灾源于 | Shopify Webhook 结合变更检测 |
| 权限 | 《订单草稿》数据访问 |
| 已开启 | 启用一个使用该功能的 Shopify Flow 工作流程即可将其开启。该功能的独立开关位于应用的**“触发器**”页面上。 |
用于
- 将报价单上的内部备注转交给下一支团队。
“订单草稿注释已更改”会发送到您的工作流程中
| Shopify Flow中的变量 | 类型 | 内容简介 |
|---|---|---|
draftOrder |
对象 | 那份备注内容发生变化的订单草稿 |
draftOrder.id |
ID | |
draftOrder.name |
文本 | |
draftOrder.status |
文本 | |
draftOrder.note |
文本 | |
oldNote |
文本 | 关于该订单草稿的上一条备注(如果之前未设置备注,则为空) |
newNote |
文本 | 订单草稿上的新备注(如果备注已被清除,则为空) |
eventId |
文本 | 此事件的 ID。请在应用的“事件历史记录”中搜索该 ID,以查看具体发送了什么内容。 |
示例:将报价备注转发至账户渠道
- 将**“订单草稿中的选秀顺位备注已更改**”设为触发器。
- 添加“使用
{{draftOrder.name}}: {{newNote}}向Slack发送HTTP请求”功能。 - 启用该工作流程。
订单草稿的顺序属性已更改
当订单草稿中的自定义属性被添加、删除或修改时触发。
| 火灾源于 | Shopify Webhook 结合变更检测 |
| 权限 | 《订单草稿》数据访问 |
| 已开启 | 启用一个使用该功能的 Shopify Flow 工作流程即可将其开启。该功能的独立开关位于应用的**“触发器**”页面上 |
用于
- 根据作为属性存储的采购订单号或要求的交货周进行响应。
“订单草稿属性已更改”会向您的工作流程发送什么
| Shopify Flow中的变量 | 类型 | 内容简介 |
|---|---|---|
draftOrder |
对象 | 自定义属性发生变化的订单草稿 |
draftOrder.id |
ID | |
draftOrder.name |
文本 | |
draftOrder.status |
文本 | |
changes |
对象 | 检测到属性变化。每个项都包含一个 changeType(添加、删除或修改)、键以及旧值和新值。 |
changes.items |
对象列表 | 检测到的属性更改列表 |
changes.items (each).changeType |
文本 | 变更类型:新增、删除、修改 |
changes.items (each).key |
文本 | 属性键 |
changes.items (each).oldValue |
文本 | 之前的值(当 changeType 为 'added' 时为空字符串) |
changes.items (each).newValue |
文本 | 新值(当 changeType 为 'removed' 时为空字符串) |
eventId |
文本 | 此事件的 ID。请在应用的“事件历史记录”中搜索该 ID,以查看具体发送了什么内容。 |
示例:获取采购订单号
- 将**“订单草稿中的选秀顺位属性已更改**”设为触发器。
- 添加一个条件:
changes.items中至少有一个满足key等于po_number。 - 添加“向 ERP 发送包含新值的 HTTP 请求”。
- 启用该工作流程。
《订单草稿》的电子邮件地址已更改
当订单草稿中的电子邮件地址发生变化时触发。该事件会携带当前的地址。
| 火灾源于 | Shopify Webhook 结合变更检测 |
| 权限 | 《订单草稿》数据访问 |
| 已开启 | 启用一个使用该功能的 Shopify Flow 工作流程即可将其开启。该功能的专用开关位于应用的**“触发器**”页面上。 |
用于
- 请确保发票寄往正确的地址。
“订单草稿已更改”邮件会向您的工作流程发送什么内容
| Shopify Flow中的变量 | 类型 | 内容简介 |
|---|---|---|
draftOrder |
对象 | 那份电子邮件地址发生变更的订单草稿 |
draftOrder.id |
ID | |
draftOrder.name |
文本 | |
draftOrder.status |
文本 | |
draftOrder.note |
文本 | |
email |
文本 | 该订单草稿目前的电子邮件地址 |
eventId |
文本 | 此事件的 ID。请在应用的“事件历史记录”中搜索该 ID,以查看具体发送了什么内容。 |
示例:在电子邮件更正后重新发送发票
- “选秀顺位”电子邮件在Shopify Flow中已更改。
- 添加一个条件:
draftOrder.status等于invoice_sent。 - 添加:**发送内部邮件,**请该代表重新发送发票。
- 启用该工作流程。
“订单草稿”收货地址已更改
当订单草稿的收货地址发生变更时触发。
| 火灾源于 | Shopify Webhook 结合变更检测 |
| 权限 | 《订单草稿》数据访问 |
| 已开启 | 启用一个使用该功能的 Shopify Flow 工作流程即可将其开启。该功能的专属开关位于应用的**“触发器**”页面上。 |
用于
- 当目的地发生变化时,重新计算报价中的运费或税费。
“发货地址已更改”订单草稿会向您的工作流程发送什么
| Shopify Flow中的变量 | 类型 | 内容简介 |
|---|---|---|
draftOrder |
对象 | 发货地址发生变更的订单草稿 |
draftOrder.id |
ID | |
draftOrder.name |
文本 | |
draftOrder.status |
文本 | |
draftOrder.note |
文本 | |
shippingAddress |
文本 | 订单草稿中当前的发货(送货)地址,以单行格式显示(可能为空) |
shippingAddressDetails |
对象 | 订单草稿中当前的发货(配送)地址,以结构化字段形式呈现(可能为空) |
shippingAddressDetails.firstName |
文本 | 地址上的名字 |
shippingAddressDetails.lastName |
文本 | 地址上的姓氏 |
shippingAddressDetails.name |
文本 | 全名,由“firstName”和“lastName”生成 |
shippingAddressDetails.company |
文本 | 公司或组织名称 |
shippingAddressDetails.address1 |
文本 | 第一行 - - 街道地址或邮政信箱号码 |
shippingAddressDetails.address2 |
文本 | 第二行 - - 公寓、套房或单元 |
shippingAddressDetails.city |
文本 | 市、区、村或镇 |
shippingAddressDetails.province |
文本 | 地区 - - 省、州或区 |
shippingAddressDetails.provinceCode |
文本 | 地区代码(例如 ON) |
shippingAddressDetails.zip |
文本 | 邮政编码 |
shippingAddressDetails.country |
文本 | 国家名称 |
shippingAddressDetails.countryCode |
文本 | 两位字母的国家代码(例如 US) |
shippingAddressDetails.phone |
文本 | 地址上的电话号码 |
eventId |
文本 | 此事件的 ID。请在应用的“事件历史记录”中搜索该 ID,以查看具体发送了什么内容。 |
示例:标记目标国家发生变化的报价
- 在Shopify Flow中更改拣货顺序和发货地址。
- 在内部邮件中添加订单草稿标签
recheck-shipping,并@{{shippingAddressDetails.countryCode}}。 - 启用该工作流程。
“更改账单地址”订单草稿
当订单草稿的账单地址发生变更时触发。
| 火灾源于 | Shopify Webhook 结合变更检测 |
| 权限 | 《订单草稿》数据访问 |
| 已开启 | 启用一个使用该功能的 Shopify Flow 工作流程即可将其开启。该功能的独立开关位于应用的**“触发器**”页面上 |
用于
- 在开具发票之前,应确保ERP系统中的债务人记录保持最新。
“订单草稿开票地址已更改”会向您的工作流程发送什么
| Shopify Flow中的变量 | 类型 | 内容简介 |
|---|---|---|
draftOrder |
对象 | 账单地址发生变更的订单草稿 |
draftOrder.id |
ID | |
draftOrder.name |
文本 | |
draftOrder.status |
文本 | |
draftOrder.note |
文本 | |
billingAddress |
文本 | 订单草稿当前的账单地址,以单行格式显示(可能为空) |
billingAddressDetails |
对象 | 订单草稿当前的账单地址(以结构化字段形式呈现,可为空) |
billingAddressDetails.firstName |
文本 | 地址上的名字 |
billingAddressDetails.lastName |
文本 | 地址上的姓氏 |
billingAddressDetails.name |
文本 | 全名,由 firstName 和 lastName 生成 |
billingAddressDetails.company |
文本 | 公司或组织名称 |
billingAddressDetails.address1 |
文本 | 第一行 - - 街道地址或邮政信箱号码 |
billingAddressDetails.address2 |
文本 | 第二行 - - 公寓、套房或单元 |
billingAddressDetails.city |
文本 | 市、区、村或镇 |
billingAddressDetails.province |
文本 | 地区 - - 省、州或区 |
billingAddressDetails.provinceCode |
文本 | 地区代码(例如 ON) |
billingAddressDetails.zip |
文本 | 邮政编码 |
billingAddressDetails.country |
文本 | 国家名称 |
billingAddressDetails.countryCode |
文本 | 两位字母的国家代码(例如 US) |
billingAddressDetails.phone |
文本 | 地址上的电话号码 |
eventId |
文本 | 此事件的ID。请在应用的“事件历史记录”中搜索该ID,以查看具体发送了什么内容。 |
示例:开具发票前更新ERP系统
- 在Shopify Flow中选择了**“订单草稿”和“账单地址已更改**”。
- 添加“使用
{{draftOrder.id}}发送HTTP请求”,并填写billingAddressDetails中的字段。 - 启用该工作流程。
下一步
订单草稿不属于 Shopify Flow 引用类型,因此这些触发器会返回一个包含 id、name 和 status 的 draftOrder 对象。对于其他情况,请添加一个**“发送管理 API 请求**”或**“运行代码**”步骤,并使用 draftOrder.id。
- 触发器完整参考指南 - 所有触发器都集中在一页上。
- 选择合适的触发器 - 哪一种适合您的情况。
- 自定义触发器 - 如果没有合适的内置触发器,请自行编写一个。
- 事件历史记录和故障排除 - 查看发射了什么以及它携带了什么。
- 在记录的管理页面上触发器 - 某条记录的最新动态,显示在Shopify管理后台的独立页面上。
