Mapeamento da carga útil e variáveis de fluxo

Shopify Flow Os campos de gatilho são cadeias de caracteres simples. A sua carga útil provavelmente não o é. O mapeamento consiste em selecionar as partes de um pedido recebido de que o seu fluxo de trabalho necessita.

Os quatro campos

Cada webhook disponibiliza quatro campos ao Shopify Flow: fieldOne, fieldTwo, fieldThree, fieldFour. Na secção** «Definições avançadas»**, associe cada um deles a uma chave na sua payload.

Tendo em conta o corpo desta solicitação:

O separador «Definições avançadas», com os campos 1 a 4 mapeados para orderId, status, total e note
Definições avançadas: mapeie até quatro valores do corpo do pedido. Estes são recebidos em Shopify Flow como fieldOne a fieldFour.
O painel «Adicionar uma variável» do Shopify Flow para o «Webhook Trigger», que apresenta o webhookId e os campos fieldOne a fieldFour com valores de exemplo de um pedido recente
O que o gatilho transmite ao seu fluxo de trabalho: o ID do webhook e os seus quatro campos mapeados, apresentados com os valores de um pedido recente.
json
{
  "orderId": "1001",
  "customer": { "email": "someone@example.com", "name": "Alex" },
  "note": "gift wrap"
}
Campo Localize-o no mapa Valor que atinge o Shopify Flow
fieldOne orderId 1001
fieldTwo customer.email someone@example.com
fieldThree customer.name Alex
fieldFour note gift wrap

Os valores aninhados utilizam caminhos com pontos (customer.email). Os elementos de um tabular utilizam um índice (items.0.sku).

No Shopify Flow, deve referir-se a elas como {{fieldOne}}, {{fieldTwo}} e assim por diante.

Objetos e matrizes

Se um valor mapeado for, ele próprio, um objeto ou uma matriz, convertemo-lo automaticamente numa cadeia de caracteres JSON, uma vez que 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 numa ação «Executar código» do Shopify Flow quando precisar de recuperar os elementos.

Quando quatro campos não são suficientes

Quatro campos com nome abrangem a maioria das integrações. Quando tal não acontece, dispõe de três opções de ativação, todas na secção «Definições avançadas» e todas desativadas por predefinição:

Contexto O que o Shopify Flow recebe Campo em Shopify Flow
Permitir cuerpo de pedido personalizado Aceita qualquer tipo de corpo sem uma validação rigorosa -
Utilize todo o corpo Todo o corpo da solicitação como uma cadeia de caracteres JSON rawBody
Incluir cabeçalhos de pedido Os cabeçalhos do pedido, sob a forma de uma lista de chaves/valores requestHeaders
Incluir parâmetros de consulta A cadeia de consulta da URL como uma lista de chave/valor queryParams

requestHeaders e queryParams são fornecidos como listas - itere requestHeaders.items numa ação «Executar Código», em que cada entrada corresponde a { key, value }.

Certifique-se de que o tamanho não ultrapasse os 50 KB

Shopify Flow limita cada execução do gatilho a 50 KB. Medimos exatamente o payload que iríamos enviar e rejeitamos qualquer coisa maior com um payload_too_large logo no início, para que receba um erro claro em vez de um fluxo de trabalho que falhe mais tarde.

Se ocorrer esse problema, envie um corpo de mensagem mais pequeno ou desative as opções «Utilizar corpo completo», «Incluir cabeçalhos de pedido» e «Incluir parâmetros de consulta» - estas opções são, normalmente, o que provoca o problema.

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

Os interruptores de ativação controlam apenas o que é encaminhado para o Shopify Flow. O histórico de invocações regista sempre os cabeçalhos e a cadeia de consulta (com os valores sensíveis mascarados), pelo que pode depurar um pedido sem enviar tudo para o seu fluxo de trabalho.