Mappage de la charge utile et variables de flux

Shopify Flow Les champs de déclencheur sont des chaînes de caractères simples. Votre payload ne l'est probablement pas. Le mappage vous permet de sélectionner les éléments d'une requête entrante dont votre workflow a besoin.

Les quatre domaines

Chaque webhook met quatre champs à la disposition de Shopify Flow : fieldOne, fieldTwo, fieldThree, fieldFour. Dans les « Paramètres avancés », associez chacun d'entre eux à une clé de votre Payload.

Compte tenu du corps de la requête suivant :

L'onglet « Paramètres avancés », dans lequel les champs 1 à 4 sont associés respectivement à « orderId », « status », « total » et « note »
Paramètres avancés : mappez jusqu'à quatre valeurs issues du corps de la requête. Elles sont transmises dans `Shopify Flow` sous les noms fieldOne à fieldFour.
Panneau « Ajouter une variable » de Shopify Flow pour le déclencheur Webhook, répertoriant les champs webhookId et fieldOne à fieldFour avec des exemples de valeurs issues d'une requête récente
Ce que le déclencheur transmet à votre workflow : l'identifiant du webhook et vos quatre champs mappés, accompagnés des valeurs d'une requête récente.
json
{
  "orderId": "1001",
  "customer": { "email": "someone@example.com", "name": "Alex" },
  "note": "gift wrap"
}
Domaine Afficher sur la carte Une valeur qui atteint Shopify Flow
fieldOne orderId 1001
fieldTwo customer.email someone@example.com
fieldThree customer.name Alex
fieldFour note gift wrap

Les valeurs imbriquées utilisent des chemins de type « point » (customer.email). Les éléments d'un tableau utilisent un index (items.0.sku).

Dans Shopify Flow, vous les désignez par les noms suivants : {{fieldOne}}, {{fieldTwo}}, etc.

Objets et tableaux

Si une valeur mappée est elle-même un objet ou un tableau, nous la convertissons automatiquement en chaîne JSON, car les variables Shopify Flow ne peuvent pas contenir de structures. En mappant fieldOne vers customer à partir de l'exemple ci-dessus, on obtient le code Shopify Flow suivant :

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

Analysez-le dans une action « Exécuter du code » de Shopify Flow lorsque vous avez besoin de récupérer ces éléments.

Lorsque quatre champs ne suffisent pas

Quatre champs nommés couvrent la plupart des intégrations. Lorsque ce n'est pas le cas, vous disposez de trois commutateurs à activer, tous situés dans la section « Paramètres avancés » et désactivés par défaut :

Contexte Ce que Shopify Flow reçoit Champ dans Shopify Flow
Autoriser le corps de requête personnalisé Accepte toutes les morphologies sans critère de sélection strict -
Utilisez tout votre corps L'intégralité du corps de la requête sous forme de chaîne JSON rawBody
Inclure les en-têtes de requête Les en-têtes de la requête sous forme de liste clé/valeur requestHeaders
Inclure les paramètres de requête La chaîne de requête de l'URL sous forme de liste clé/valeur queryParams

requestHeaders et queryParams sont fournis sous forme de listes - parcourez requestHeaders.items dans une action « Exécuter le code », où chaque élément correspond à { key, value }.

Veillez à ce que la taille ne dépasse pas 50 Ko

Shopify Flow limite chaque exécution de déclencheur à 50 Ko. Nous mesurons la taille exacte du payload que nous enverrions et rejetons d'emblée tout fichier plus volumineux à l'aide de payload_too_large, ce qui vous permet d'obtenir un message d'erreur clair plutôt qu'un workflow qui échouerait plus tard.

Si vous rencontrez ce problème, envoyez un corps de message plus court, ou désactivez les options « Utiliser le corps complet », « Inclure les en-têtes de requête » et « Inclure les paramètres de requête » : ce sont généralement ces paramètres qui provoquent le problème.

Les en-têtes et les requêtes sont toujours enregistrés

Les commutateurs d’activation ne contrôlent que les éléments transmis à Shopify Flow. L’historique des appels enregistre toujours les en-têtes et la chaîne de requête (avec les valeurs sensibles masquées), ce qui vous permet de déboguer une requête sans tout envoyer à votre workflow.