Enviar solicitação da Admin API

A ação Enviar solicitação da Admin API pode usar a maioria das mutações na GraphQL Admin API para fazer alterações na loja, incluindo mutações ainda não disponíveis como ações no Flow.

Campos

A ação Enviar solicitação da Admin API contém os seguintes campos.

Campos usados na ação Enviar solicitação da Admin API.
CampoDescrição
MutaçãoObrigatório. A mutação da GraphQL Admin da Shopify que você quer chamar. Uma mutação é uma API que executa uma ação ou atualiza dados.
Entradas da mutaçãoObrigatório. Os dados (em JSON) que precisam ser enviados como parte da solicitação de mutação. Cada mutação exige um conjunto de dados diferente, documentado no link fornecido. Para criar o JSON necessário, use o Liquid ou uma ação Executar código.

Acionadores

A ação Enviar solicitação da Admin API pode ser usada em qualquer fluxo de trabalho, com qualquer acionador, desde que o fluxo de trabalho forneça os dados necessários para criar as entradas da mutação.

Exemplos

Exemplo 1: atualizar o modelo usado para um produto

Neste exemplo, usaremos a ação Enviar solicitação da Admin API para chamar a mutação productUpdate para atualizar o modelo usado para um produto.

O campo id é obrigatório e precisa ser um GID de produto válido. Aqui, ele é definido com a variável do Liquid {{product.id}}. Isso pressupõe que o fluxo de trabalho tenha um acionador que forneça um objeto de produto.

O templateSuffix é o nome do modelo que você quer aplicar ao produto. Por exemplo, para aplicar o modelo pre-order, defina o templateSuffix como pre-order.

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

Exemplo 2: atualizar o status de isenção de tributos de um cliente

Neste exemplo, usaremos a ação Enviar solicitação da Admin API para chamar a mutação customerUpdate para atualizar o status de isenção de tributos de um cliente.

O campo id é obrigatório e precisa ser um GID de cliente válido. Aqui, ele é definido com a variável do Liquid {{order.customer.id}}. Isso pressupõe que o fluxo de trabalho tenha um acionador que forneça um objeto de pedido.

O campo taxExempt é um booleano que indica se o cliente tem isenção de tributos. Neste exemplo, ele é definido como true.

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

Exemplo 3: atualizar a localidade de um cliente

Neste exemplo, usaremos a ação Enviar solicitação da Admin API para chamar a mutação customerUpdate para atualizar a localidade de um cliente.

O campo id é obrigatório e precisa ser um GID de cliente válido. Aqui, ele é definido com a variável do Liquid {{customer.id}}. Isso pressupõe que o fluxo de trabalho tenha um acionador que forneça um objeto de cliente.

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

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

Dicas do Liquid

O Flow é compatível com um filtro json do Liquid que pode ser útil na criação da entrada. Todos os exemplos a seguir usam a mutação customerUpdate e pressupõem que o fluxo de trabalho tenha um acionador que forneça um objeto de cliente.

Como 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 escapa a string para garantir o JSON adequado. 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!",
  }
}

Como trabalhar com matrizes

Exemplo de matriz

O filtro json transforma uma matriz do Liquid em uma matriz JSON. O exemplo a seguir gera uma matriz JSON quando uma matriz do Liquid é fornecida:

{% 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"]
  }
}

Exemplo de loop For

O exemplo a seguir usa um loop para gerar os 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 quando o fluxo de trabalho é executado:

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

Exemplo de mapa

O filtro map 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 Enviar solicitação da Admin API tem as seguintes limitações:

  • A ação exibirá uma lista de Mutações e Entradas de mutação da versão da Admin API usada pelo Flow.
  • Quando novas versões da API são lançadas, essa ação pode falhar se usar uma mutação ou um campo que foi alterado ou descontinuado.
  • A ação não é compatível com consultas do GraphQL, apenas com mutações.
  • A ação não é compatível com mutações que foram descontinuadas.
  • A ação não é compatível com algumas mutações específicas de determinados apps, incluindo algumas mutações de assinatura, atividade de marketing e desconto.
  • A ação não é compatível com mutações assíncronas ou mutações que retornam um tipo Job.
  • A ação não é compatível com mutações que não implementam a interface Node.

Modelos

Adicionar item grátis (com 100% de desconto) a novos pedidos

Este modelo adiciona um item com desconto e gratuito a novos pedidos se o item estiver em estoque. Ele verifica o estoque, aplica um desconto de 100% e atualiza o pedido sem notificar o cliente. Essa automação seria útil para (1) aumentar a satisfação do cliente, incluindo um item surpresa gratuito no pedido; (2) promover produtos novos ou menos conhecidos, adicionando-os como amostras grátis nos pedidos; ou (3) otimizar promoções, automatizando a inclusão e o desconto de itens gratuitos. Ver modelo

Permitir pedidos para empresas criadas por solicitações de conta de empresa

Atribuir permissão de pedido quando uma empresa é criada por uma solicitação de conta de empresa. Ver modelo

Alterar o modelo do produto quando as variantes estiverem sem estoque ou de volta ao estoque

Atualiza um modelo de produto com base no estoque das variantes do produto. O workflow permite alternar entre modelos para produtos em estoque (o modelo padrão da loja), sem estoque e quando uma ou mais variantes estiverem sem estoque. Ver modelo

Processar os itens digitais de um pedido

Processa os itens que não exigem entrega física, como itens digitais, ou que correspondem a uma lista de SKUs. Executa uma vez para cada local de processamento (o “pedido de processamento”) para um novo pedido. Ver modelo