发送 Admin API 请求

发送 Admin API 请求操作可以使用 GraphQL Admin API 中的大多数更改来更改您的商店,包括 Flow 中尚未作为操作提供的更改。

字段

发送 Admin API 请求操作包含以下字段。

“发送 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 版本中 MutationsMutation inputs 的列表。
  • 当发布新 API 版本时,如果使用已更改或弃用的更改或字段,此操作可能会失败。
  • 此操作不支持 GraphQL 查询,仅支持更改。
  • 此操作不支持已弃用的更改。
  • 此操作不支持特定于某些应用的某些更改,包括一些订阅、营销活动和折扣更改。
  • 此操作不支持异步更改或返回 Job 类型的更改。
  • 此操作不支持不实现节点接口的更改。

模板

在新订单中添加免费(100% 折扣)商品

此模板会在新订单中添加免费折扣商品(如有库存)。它检查库存,应用 100% 折扣,并在不通知客户的情况下更新订单。此自动化有助于 (1) 通过在订单中添加免费惊喜商品来提高客户满意度,(2) 通过在订单中添加免费样品来推广新产品或不知名的产品,或者 (3) 通过自动包含免费商品并应用折扣来简化促销。查看模板

允许为通过公司账户请求创建的公司订购产品

在公司账户请求创建公司时,为其分配订购权限。查看模板

在多属性缺货或到货时更改产品模板

根据产品多属性的库存更新产品模板。通过此工作流可在有货模板(商店默认模板)、缺货模板和一个或多个多属性缺货模板之间切换。查看模板

为订单中的任何数字商品发货

为任何不需要实际配送的商品(如数字商目)或与 SKU 列表匹配的商品发货。对新订单的每个发货地点(“发货订单”)运行一次。查看模板

没有找到您需要的答案?我们将为您提供帮助。