预览 Shopify Flow 中使用的 API 数据
构建工作流时,您可能经常需要在条件和操作中使用商店的数据。Shopify Flow 可通过调用 GraphQL Admin API 来访问商店数据,这意味着您可以访问该 API 中的几乎所有字段。
构建工作流时,您通常会遇到基于 API 的字段名称和描述,但您可能需要了解该 API 输出的数据。例如,您可能希望知道通过草稿订单创建的订单所对应的应用名称。此外,您可能还需要确保您的工作流输出的是您预期的数据,或者以您预期的形式输出数据。
若要查看数据,您可以在 Shopify Flow 中使用多个选项。
在 Shopify 后台中查找字段
大多数情况下,Shopify 后台中可提供此类数据。
在实时工作流中使用字段
您可以使用可帮助您查看数据的操作(而不是计划用于最终版本的操作)来构建工作流。例如,假设您要创建一个取消订单的工作流。您可以使用发送内部电子邮件操作或发送 Slack 消息操作(如果您使用 Slack)来开始创建,而不是使用取消订单操作,此操作可能会取消错误的订单。
步骤:
- 选择可手动触发的触发器。
- 向工作流添加操作并将其连接到触发器,例如发送内部电子邮件。
- 将要检查的变量添加到发送内部电子邮件操作的消息部分。
- 点击开启工作流。
- 通过触发触发器或手动运行工作流来触发工作流。例如,您使用已创建订单触发器,然后创建一个测试订单。
- 工作流运行后,检查您是否收到了包含相应变量的电子邮件。
参阅资源 JSON 页面
您可以在 Shopify 后台中的大多数资源页面(例如订单、产品或客户页面)查看对应页面使用的数据。此类数据与 Shopify Flow 使用的命名和格式不完全相同,但值与 GraphQL Admin API 中的值匹配。若要查看数据,请将 .json
添加到 URL 中。
例如,在 Shopify 后台中转到订单页面并点击某个订单即可导航到相应订单。在浏览器地址栏中的页面地址中,将地址从:
https://<your_domain>.myshopify.com/admin/orders/3804849891234
更改为:
https://<your_domain>.myshopify.com/admin/orders/3804849891234.json
使用 GraphiQL 或第三方 API 工具
您可以使用 Postman 等第三方 API 工具或 Shopify 提供的免费工具 GraphiQL 来直接查询 API。此选项可提供最准确的结果,但要求熟悉创建 GraphQL 查询的流程。
对于 GraphiQL,Shopify 同时提供具有通用数据的基于 Web 的 GraphiQL Explorer 和 GraphiQL 应用。通过使用 GraphiQL,您可以生成一个 GraphQL 查询,该查询与 Shopify Flow 中显示的字段名称完全匹配。如果您使用该应用,相关值也与您的商店完全匹配。
通过使用此工具,您可以准确确定 Shopify Flow 使用的数据以及您的实际商店数据。例如,您创建以下查询:
{
orders(first:5, reverse:true) {
nodes {
createdAt
app {
name
}
channelInformation {
app {
title
}
}
}
}
}
在下面的结果中,变量 order / app / name
显示订单的应用名称。在此示例中,订单是通过草稿订单应用创建的,因此值为 Draft Orders
。渠道信息仅适用于 Point of Sale
应用。
{
"data": {
"orders": {
"nodes": [
{
"createdAt": "2023-04-10T12:32:41Z",
"app": {
"name": "Draft Orders"
},
"channelInformation": null
},
{
"createdAt": "2023-04-10T12:29:12Z",
"app": {
"name": "Draft Orders"
},
"channelInformation": null
},
{
"createdAt": "2023-03-17T20:23:10Z",
"app": {
"name": "Draft Orders"
},
"channelInformation": null
},
{
"createdAt": "2023-03-17T20:20:53Z",
"app": {
"name": "Draft Orders"
},
"channelInformation": null
},
{
"createdAt": "2023-03-17T15:45:15Z",
"app": {
"name": "Point of Sale"
},
"channelInformation": {
"app": {
"title": "Point of Sale"
}
}
}
]
}
}