Send Admin API request ("Enviar solicitação à API Admin")

A ação Send Admin API request ("Enviar solicitação à API Admin") envia uma mutação à API GraphQL Shopify Admin. Dessa maneira, é possível realizar todas as ações permitidas pela API com o Flow.

Campos

A ação Send Admin API request ("Enviar solicitação à API Admin") apresenta os campos a seguir.

Campos usados na ação Send Admin API request ("Enviar solicitação à API Admin").
Campo Descrição
Mutação Obrigatório. A mutação GraphQL do admin da Shopify que você quer chamar. Uma mutação é uma API que realiza ações ou atualiza dados.
Entradas de mutação Obrigatório. Os dados (em JSON) que você precisa enviar como parte da solicitação de mutação. Cada mutação requer um conjunto de dados diferente, que é documentado no link fornecido para cada mutação. Para construir o JSON necessário, use o Liquid ou a ação "Run code" ("Executar código").

Acionadores

A ação Send Admin API request ("Enviar solicitação à API Admin") pode ser usada em todos os fluxos de trabalho com qualquer acionador, desde que o fluxo de trabalho forneça os dados necessários para criar as entradas de mutação.

Exemplos

Exemplo 1: atualizar o modelo usado para um produto

Neste exemplo, vamos usar a ação Send Admin API request ("Enviar solicitação à API Admin") para chamar a mutação productUpdate e atualizar o modelo usado para um produto.

O campo id é obrigatório e precisa ser um GID de produto válido. Nesse caso, é definido com a variável {{product.id}} do Liquid. Isso pressupõe que seu fluxo de trabalho tem um acionador com um objeto de produto.

templateSuffix é o nome do modelo que você quer usar com o produto. Por exemplo, se quiser aplicar o modelo pre-order, você precisará definir o templateSuffix como pre-order.

{
  "input": {
    "templateSuffix": "pre-order",
    "id": "{{product.id}}"
  }
}

Exemplo 2: atualizar o status de isenção tributária de um cliente

Neste exemplo, vamos usar a ação Send Admin API request ("Enviar solicitação à API Admin") para chamar a mutação customerUpdate e atualizar o status de isenção tributária do cliente.

O id é obrigatório e precisa ser um GID de cliente válido. Nesse caso, é definido com a variável {{order.customer.id}} do Liquid. Isso pressupõe que seu fluxo de trabalho tem um acionador que tem um objeto de pedido.

taxExempt é um booleano que indica se o cliente está isento de tributos. Neste exemplo, é definido como true.

{
  "input": {
    "id": "{{order.customer.id}}",
    "taxExempt": true
  }
}

Exemplo 3: atualizar a localidade de um cliente

Neste exemplo, vamos usar a ação Send Admin API request ("Enviar solicitação à API Admin") para chamar a mutação customerUpdate e atualizar a localidade do cliente.

O campo id é obrigatório e precisa ser um GID de cliente válido. Nesse caso, é definido com a variável {{customer.id}} do Liquid. Isso pressupõe que seu fluxo de trabalho tem um acionador com um objeto de cliente.

locale é uma string que representa a localidade do cliente. Neste exemplo, é definido como en.

{
  "input": {
    "id": "{{customer.id}}",
    "locale": "en"
  }
}

Dicas do Liquid

O Flow é compatível com o filtro do Liquid json, que pode ser útil na construção da entrada. Todos os exemplos a seguir usam a mutação customerUpdate e assumem que seu fluxo de trabalho tem um acionador que fornece um objeto de cliente.

Trabalhar com strings

O exemplo a seguir atualiza a observação de um cliente:

{% assign revisedNote = customer.note | append: " Hello from Flow!" %}

{
  "input": {
    "id": "{{ customer.id }}",
    "note": {{ revisedNote | json }},
  }
}

O filtro json faz o escape da string para garantir o JSON correto. Isso resulta no seguinte JSON após a execução do fluxo de trabalho:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "note": "Had a \"great experience\" with their latest order. Hello from Flow!",
  }
}

Trabalhar com matrizes

Exemplo de matriz

O filtro json transforma uma matriz do Liquid em uma matriz JSON. O exemplo a seguir dá o resultado de uma matriz JSON quando fornecida com uma matriz do Liquid:

{% assign tags = "tag1,tag2,tag3" | split: "," %}

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": {{ tags | json }}
  }
}

Isso resulta no seguinte JSON após a execução do fluxo de trabalho:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": ["tag1","tag2","tag3"]
  }
}

Para exemplos de loop

O exemplo a seguir usa um loop para saída dos elementos de uma matriz, separados por vírgulas:

{% assign tags = "tag1,tag2,tag3" | split: "," %}

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": [
      {% for tag in tags %}
        "{{ tag }}"{% unless forloop.last %},{% endunless %}
      {% endfor %}
    ]
  }
}

Isso resulta no seguinte JSON após a execução do fluxo de trabalho:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": [
        "tag1",
        "tag2",
        "tag3"
    ]
  }
}

Exemplo de mapa

O filtro de mapa pode ser usado para obter uma matriz de uma propriedade específica de uma matriz de objetos. No exemplo a seguir, uma matriz de propriedades city é extraída de uma matriz de endereços de clientes:

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": {{ customer.addresses | map: "city" | json }}
  }
}

Isso resulta no seguinte JSON após a execução do fluxo de trabalho:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": ["Ottawa","Toronto"]
  }
}

Limitações

A ação Send Admin API request ("Enviar solicitação à API Admin") tem as seguintes limitações:

  • A ação não retorna dados no ambiente do Flow como resultado da mutação.
  • A ação não é compatível com consultas GraphQL, apenas com mutações.
  • A ação não é compatível com mutações assíncronas ou que retornam um tipo Job.
  • A ação não aceita mutações específicas de determinados apps, incluindo mutações de assinaturas e desconto.
  • A ação exibirá uma lista de Mutations e Mutation inputs de uma única versão da API da Shopify, que atualmente é 2024-01.
  • Quando a versão da API é atualizada e contém uma alteração significativa, a ação pode falhar se depender desse campo específico.

Tudo pronto para começar a vender com a Shopify?

Experimente de graça