Send Admin API request ("Enviar solicitação à API Admin")
A ação Send Admin API request (Enviar solicitação à API Admin) 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.
Nesta página
Campos
A ação Send Admin API request ("Enviar solicitação à API Admin") apresenta os campos a seguir.
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 exibirá uma lista com
Mutations
eMutation inputs
de uma única versão da API Admin usada pelo Flow. - Quando novas versões da API são lançadas, essa ação pode falhar se estiver usando uma mutação ou campo que foi alterado ou desativado.
- A ação não é compatível com consultas GraphQL, apenas com mutações.
- A ação não aceita mutações que foram descontinuadas.
- A ação não aceita algumas mutações específicas de determinados apps, incluindo algumas mutações de assinaturas, atividades de marketing e descontos.
- 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 que não implementam a interface Node.
Modelos
Adicionar item gratuito (com desconto de 100%) a novos pedidos
Este modelo adiciona um item 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 é útil para (1) melhorar a satisfação do cliente por incluir um item gratuito surpresa em seu pedido, (2) promover produtos novos ou menos conhecidos, adicionando-os como amostras gratuitas 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 da empresa
Atribua uma permissão de pedido quando uma empresa é criada por uma solicitação de conta da empresa. Ver modelo
Alterar modelo de produto quando as variantes estão sem estoque ou em estoque
Atualize um modelo de produto com base no estoque das variantes do produto. O fluxo de trabalho permite alternar entre os modelos em estoque (o modelo-padrão da loja), sem estoque e quando uma ou mais variantes estão sem estoque. Ver modelo.
Processar itens digitais em um pedido
Processa todos os itens que não precisam de entrega física, como os digitais ou que correspondem a uma lista de SKUs. É executado uma vez por cada local de processamento (a "solicitação de processamento de pedidos") de um novo pedido. Ver modelo