Mapeamento de payload e variáveis de fluxo

Shopify Flow Os campos de gatilho são strings simples. Sua carga provavelmente não é. O mapeamento é a forma como você seleciona as partes de uma solicitação recebida de que seu fluxo de trabalho necessita.

Os quatro campos

Cada webhook expõe quatro campos ao Shopify Flow: fieldOne, fieldTwo, fieldThree, fieldFour. Na seção** “Configurações avançadas”**, associe cada um deles a uma chave em sua carga útil.

Considerando este corpo da solicitação:

A guia “Configurações avançadas”, com os campos 1 a 4 mapeados para orderId, status, total e note
Configurações avançadas: mapeie até quatro valores do corpo da solicitação. Eles são recebidos em Shopify Flow como fieldOne a fieldFour.
O painel “Adicionar uma variável” do Shopify Flow para o Gatilho de Webhook, listando webhookId e fieldOne a fieldFour com valores de exemplo de uma solicitação recente
O que o gatilho transmite ao seu fluxo de trabalho: o ID do webhook e seus quatro campos mapeados, exibidos com os valores de uma solicitação recente.
json
{
  "orderId": "1001",
  "customer": { "email": "someone@example.com", "name": "Alex" },
  "note": "gift wrap"
}
Campo Mapeie para Valor que alcança o Shopify Flow
fieldOne orderId 1001
fieldTwo customer.email someone@example.com
fieldThree customer.name Alex
fieldFour note gift wrap

Valores aninhados utilizam caminhos com ponto (customer.email). Os elementos de uma matriz utilizam um índice (items.0.sku).

No Shopify Flow, você as refere como {{fieldOne}}, {{fieldTwo}} e assim por diante.

Objetos e matrizes

Se um valor mapeado for, por sua vez, um objeto ou uma matriz, nós o convertemos automaticamente em uma string JSON, pois as variáveis do Shopify Flow não podem conter estruturas. Ao mapear fieldOne para customer, conforme o exemplo acima, obtém-se no Shopify Flow:

text
{"email":"someone@example.com","name":"Alex"}

Analise-o em uma ação “Executar Código” do Shopify Flow quando precisar recuperar os elementos.

Quando quatro campos não são suficientes

Quatro campos nomeados abrangem a maioria das integrações. Quando isso não ocorre, o senhor dispõe de três opções de ativação, todas localizadas em “Configurações avançadas” e desativadas por padrão:

Cenário O que o Shopify Flow recebe Campo em Shopify Flow
Permitir corpo de solicitação personalizado Aceita qualquer tipo de corpo, sem validação rigorosa -
Utilize todo o corpo Todo o corpo da solicitação como uma string JSON rawBody
Incluir cabeçalhos de solicitação Os cabeçalhos da solicitação como uma lista de chave/valor requestHeaders
Incluir parâmetros de consulta A string de consulta da URL como uma lista de chave/valor queryParams

requestHeaders e queryParams são recebidos como listas - itere requestHeaders.items em uma ação “Executar Código”, em que cada entrada é { key, value }.

Mantenha o tamanho abaixo de 50 KB

Shopify Flow limita cada execução do gatilho a 50 KB. Medimos o payload exato que enviaríamos e rejeitamos qualquer coisa maior com um payload_too_large logo no início, para que você receba uma mensagem de erro clara, em vez de um fluxo de trabalho que falhe posteriormente.

Caso o sistema apresente erros, envie um corpo menor ou desative as opções “Usar corpo completo”, “Incluir cabeçalhos de solicitação” e “Incluir parâmetros de consulta” - geralmente são essas configurações que causam o problema.

Os cabeçalhos e a consulta são sempre registrados

Os botões de ativação controlam apenas o que é encaminhado para o Shopify Flow. O histórico de chamadas sempre registra os cabeçalhos e a string de consulta (com valores confidenciais ocultos), para que você possa depurar uma solicitação sem enviar tudo para o seu fluxo de trabalho.