Cette action échange une récompense pour un client, comme il le ferait depuis sa Customer App. JeriCommerce vérifie les règles de la récompense, retire les points et donne au client un code de réduction. Utilisez-la quand les clients échangent depuis votre propre site, application ou point de vente, ou pour échanger automatiquement depuis un flow Klaviyo.
Ce qui se passe ¶
- Les points de la récompense sont retirés du solde du client.
- Le client reçoit un code de réduction : un nouveau code Shopify à usage unique ou le prochain code de votre lot importé, selon la remise de la récompense.
- Le client reçoit un e-mail avec le code, et le code apparaît dans ses coupons.
- Un événement Reward redeemed avec le
codeet un événement Balance changed sont envoyés à votre webhook d’événements. Écoutez Reward redeemed si votre système a besoin du code.
Une Fixed reward coûte toujours son Points cost. Une récompense Points as cash laisse le client choisir combien de points utiliser, entre le minimum et le maximum de la récompense. La réduction est égale aux points multipliés par la valeur de chaque point, arrondie à deux décimales. Par exemple, 500 points valant 0,02 chacun donnent une réduction de 10,00.
L’échange est refusé, sans retirer de points, quand :
- Le client n’a pas assez de points, ou certains de ses points sont encore en attente.
- Le client ne respecte pas les règles de visibilité ou de segment de la récompense.
- La remise de la récompense n’a plus de codes.
- Les points à échanger sont absents pour une récompense Points as cash, ou en dehors de son minimum et de son maximum.
Mise en place ¶
Shopify Flow n’a pas d’action JeriCommerce pour échanger des récompenses. Pour échanger depuis une automatisation, utilisez un webhook Klaviyo ou l’API.
Dans votre boutique, les clients peuvent échanger eux-mêmes leurs récompenses depuis la Customer App, et votre équipe peut le faire en caisse comme décrit dans Voir et échanger les récompenses des clients sur Shopify POS.
Ajoutez une action Webhook à votre flow Klaviyo. Remplissez le générateur ci-dessous et copiez chaque valeur dans les paramètres du webhook. Pour trouver l’ID d’une récompense, ouvrez-la dans Loyalty > Ways to redeem.
Vos informations
Retrouvez-le dans Settings > Technical > Program Information.
Créez-en une dans Settings > Technical > API Keys. Elle reste dans votre navigateur.
Détails de l’action
Ouvrez la récompense dans Loyalty > Ways to redeem pour afficher son ID.
Pour Points as cash, saisissez un nombre entier de points supérieur ou égal à 1. Laissez le champ vide pour une récompense Fixed reward.
Copier et coller dans Klaviyo
https://api.jericommerce.com/v1/programs/your-program-slug/reward/redeemapi-keyyour-api-key[
{
"email": "{{ person.email|default:'' }}",
"rewardId": ""
}
]Pour une récompense Points as cash, saisissez les points à échanger sous forme d’entier d’au moins 1. Laissez le champ vide pour une Fixed reward. Klaviyo Customer Hub ne prend en charge que les options Fixed reward.
Les webhooks Klaviyo sont mis en file d’attente : JeriCommerce traite l’échange quelques secondes plus tard, et Klaviyo n’est pas informé s’il est refusé.
POST https://api.jericommerce.com/v1/programs/{program_slug}/reward/redeem
Envoyez votre clé API dans l’en-tête api-key. Consultez Authentification via l’API. Le corps est un tableau de 100 éléments maximum :
[
{
"email": "customer@example.com",
"rewardId": "2f6c1a2e-8f3b-4f0e-9a51-1d2b3c4d5e6f"
}
]
| Champ | Type | Obligatoire | Remarques |
|---|---|---|---|
email |
string | Oui | Adresse e-mail d’un client déjà présent dans le programme. |
rewardId |
string | Oui | L’id de la récompense. Obtenez-le avec Lister les récompenses. |
pointsToRedeem |
integer | Seulement pour Points as cash | Combien de points convertir, entre minPoints et maxPoints de la récompense. Ignoré pour une Fixed reward. |
Dans l’API, une Fixed reward a "type": "fixed" et coûte redeemCost points. Une récompense Points as cash a "type": "dynamic", et sa réduction est égale à pointsToRedeem multiplié par currencyPerPoint.
L’API répond 201 avec un corps vide dès que la requête est valide. L’échange est traité quelques secondes plus tard : la réponse ne contient donc pas le code de réduction, et les refus ne sont pas signalés. Consultez les endpoints en file d’attente. Pour vérifier à l’avance, comparez le solde du client obtenu avec Obtenir les détails d’un client au coût de la récompense.
| Code | Statut | Signification |
|---|---|---|
MAX_ITEMS_PER_REQUEST_EXCEEDED |
400 |
Le tableau contient plus de 100 éléments. |
| Erreurs de validation | 400 |
email est manquant, rewardId n’est pas un ID valide ou pointsToRedeem n’est pas un entier supérieur ou égal à 1. |
Construisez une requête prête à l’emploi avec vos propres valeurs :
Vos informations
Retrouvez-le dans Settings > Technical > Program Information.
Créez-en une dans Settings > Technical > API Keys. Elle reste dans votre navigateur.
Détails de l’action
Ouvrez la récompense dans Loyalty > Ways to redeem pour afficher son ID.
Pour Points as cash, saisissez un nombre entier de points supérieur ou égal à 1. Laissez le champ vide pour une récompense Fixed reward.
Votre requête
curl --request POST \
--url 'https://api.jericommerce.com/v1/programs/your-program-slug/reward/redeem' \
--header 'api-key: your-api-key' \
--header 'Content-Type: application/json' \
--data '[
{
"email": "customer@example.com",
"rewardId": ""
}
]'Collez-la dans un terminal pour tester la requête avec votre programme.