发送 Admin API 请求
发送 Admin API 请求操作可以使用 GraphQL Admin API 中的大多数更改来更改您的商店,包括 Flow 中尚未作为操作提供的更改。
字段
发送 Admin API 请求操作包含以下字段。
字段 | 描述 |
---|---|
更改 | 必填。您要调用的 Shopify GraphQL Admin 更改。更改是执行操作或更新数据的 API。 |
更改输入 | 必填。您需要在更改请求中发送的数据(采用 JSON 格式)。每个更改都需要一组不同的数据,这些数据记录在为每个更改提供的链接中。若要构建所需的 JSON,您可以使用 Liquid 或运行代码操作。 |
触发器
只要工作流提供了构建更改输入所需的数据,发送 Admin API 请求操作便可用于使用任何触发器的任何工作流。
示例
示例 1:更新用于产品的模板
在此示例中,我们将使用发送 Admin API 请求操作来调用 productUpdate
更改,以更新用于产品的模板。
id
字段为必填项,并且必须是有效的产品 GID。在此处,我们用 {{product.id}}
Liquid 变量对其进行设置。这假定您的工作流有一个提供产品对象的触发器。
templateSuffix
是要应用于产品的模板的名称。例如,如果要应用 pre-order
模板,那么您需要将 templateSuffix 设置为 pre-order
。
{
"input": {
"templateSuffix": "pre-order",
"id": "{{product.id}}"
}
}
示例 2:更新客户的免税状态
在此示例中,我们将使用发送 Admin API 请求操作来调用 customerUpdate
更改,以更新客户的免税状态。
id
字段为必填项,并且必须是有效的客户 GID。在此处,我们用 {{order.customer.id}}
Liquid 变量对其进行设置。假定您的工作流有一个提供订单对象的触发器。
taxExempt
字段是一个布尔值,用于指示客户是否免税。在此示例中,我们将其设置为 true
。
{
"input": {
"id": "{{order.customer.id}}",
"taxExempt": true
}
}
示例 3:更新客户的区域设置
在此示例中,我们将使用发送 Admin API 请求操作来调用 customerUpdate
更改,以更新客户的区域设置。
id
字段为必填项,并且必须是有效的客户 GID。在此处,我们用 {{customer.id}}
Liquid 变量对其进行设置。这假定您的工作流有一个提供客户对象的触发器。
locale
字段是表示客户区域设置的字符串。在此示例中,我们将其设置为 en
。
{
"input": {
"id": "{{customer.id}}",
"locale": "en"
}
}
Liquid 提示
Flow 支持 json
liquid 筛选器,这可帮助构建输入。下面的示例都使用了 customerUpdate
更改,并假设您的工作流有提供客户对象的触发器。
使用字符串
下面的示例更新了客户的备注:
{% assign revisedNote = customer.note | append: " Hello from Flow!" %}
{
"input": {
"id": "{{ customer.id }}",
"note": {{ revisedNote | json }},
}
}
json
筛选器可将字符串转义以确保 JSON 正确。工作流运行后,这将导致出现以下 JSON:
{
"input": {
"id": "gid://shopify/Customer/1234",
"note": "Had a \"great experience\" with their latest order. Hello from Flow!",
}
}
使用数组
数组示例
json
筛选器可将 liquid 数组转换为 JSON 数组。下面的示例在提供了 liquid 数组时输出 JSON 数组:
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ tags | json }}
}
}
工作流运行后,这将导致出现以下 JSON:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["tag1","tag2","tag3"]
}
}
for 循环示例
下面的示例使用循环来输出数组元素,用逗号分隔:
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": [
{% for tag in tags %}
"{{ tag }}"{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}
}
当工作流运行时,这将导致出现以下 JSON:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": [
"tag1",
"tag2",
"tag3"
]
}
}
map 示例
map 筛选器可用于从对象数组中获取特定属性的数组。下面的示例从客户地址数组中提取 city
属性的数组:
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ customer.addresses | map: "city" | json }}
}
}
工作流运行后,这将导致出现以下 JSON:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["Ottawa","Toronto"]
}
}
限制
发送 Admin API 请求操作具有以下限制:
- 此操作将显示 Flow 所用 Admin API 版本中
Mutations
和Mutation inputs
的列表。 - 当发布新 API 版本时,如果使用已更改或弃用的更改或字段,此操作可能会失败。
- 此操作不支持 GraphQL 查询,仅支持更改。
- 此操作不支持已弃用的更改。
- 此操作不支持特定于某些应用的某些更改,包括一些订阅、营销活动和折扣更改。
- 此操作不支持异步更改或返回
Job
类型的更改。 - 此操作不支持不实现节点接口的更改。
模板
在新订单中添加免费(100% 折扣)商品
此模板会在新订单中添加免费折扣商品(如有库存)。它检查库存,应用 100% 折扣,并在不通知客户的情况下更新订单。此自动化有助于 (1) 通过在订单中添加免费惊喜商品来提高客户满意度,(2) 通过在订单中添加免费样品来推广新产品或不知名的产品,或者 (3) 通过自动包含免费商品并应用折扣来简化促销。查看模板
允许为通过公司账户请求创建的公司订购产品
在公司账户请求创建公司时,为其分配订购权限。查看模板
在多属性缺货或到货时更改产品模板
根据产品多属性的库存更新产品模板。通过此工作流可在有货模板(商店默认模板)、缺货模板和一个或多个多属性缺货模板之间切换。查看模板
为订单中的任何数字商品发货
为任何不需要实际配送的商品(如数字商目)或与 SKU 列表匹配的商品发货。对新订单的每个发货地点(“发货订单”)运行一次。查看模板