Aperçu
POST à /api/public/strategy/evaluate, et affichez la réponse.
Cette page couvre deux schémas d’implémentation :
- Contexte PDP — déposez une section sur les pages produit qui appelle l’API avec le produit actuellement consulté et affiche un carrousel des recommandations renvoyées.
- Contexte panier — affichez un bloc d’upsell dans un panier personnalisé qui appelle l’API avec toutes les lignes d’articles actuelles du panier et affiche les produits renvoyés.
Ce dont vous aurez besoin
- Votre clé API Strategy. Dans Aftersell, accédez à Settings → Product Strategy et, dans la carte Security Token, copiez votre jeton (c’est votre clé API Strategy).
- Le Strategy ID. Ouvrez la Strategy que vous souhaitez exécuter dans l’éditeur de Strategy d’Aftersell et copiez son ID.
- L’accès au code du thème. Vous ajouterez une section Liquid (PDP) ou un bloc (panier personnalisé) à votre thème Shopify — Online Store → Themes → … → Edit code.
Contexte PDP : extrait de section
Installation
- Dans votre admin Shopify, accédez à Online Store → Themes, cliquez sur … sur votre thème et sélectionnez Edit code.
- Dans le dossier Sections, créez un nouveau fichier nommé
aftersell-upsell-carousel.liquid. - Collez l’extrait ci-dessous dans le nouveau fichier et remplacez
YOUR_STRATEGY_API_KEYpar la clé API provenant d’Aftersell. - Enregistrez.
- Ouvrez votre template produit (généralement
templates/product.jsonousections/main-product.liquid) et ajoutez la section Aftersell Carousel là où vous souhaitez que le carrousel apparaisse. Depuis l’éditeur de thème, vous pouvez aussi la faire glisser directement sur la page produit. - Dans les paramètres de la section, collez votre Strategy ID.
Ce que la section envoie
- products — un tableau à un seul élément contenant le produit actuellement consulté (productId, variantId, quantity, price, handle, title, vendor, productType, tags, collections, sellingPlan).
- cart — sous-total, nombre d’articles, nombre de lignes du panier actuel de l’acheteur (omis si le panier est vide).
- cartToken — pour que l’API puisse rattacher cette évaluation à la même session.
- customer — tags, pays, province, locale, nombre de commandes, total dépensé et indicateur d’acceptation du marketing, mais uniquement si l’acheteur est connecté.
- session — code de devise provenant de
shop.currency.
session avant le fetch.
L’extrait

Personnalisation
{% schema %} pour exposer davantage de réglages dans l’éditeur de thème.
Le CSS est isolé sous des noms de classes .aftersell-* et inclut un carrousel Splide à 4 éléments qui passe à 2 éléments à 768 px et à 1 élément à 480 px. Modifiez-le librement pour l’adapter à votre thème — rien de tout cela n’est requis pour que l’appel API fonctionne.
Contexte panier : bloc d’upsell de panier personnalisé
cart.liquid. La forme de l’appel API et le traitement de la réponse sont identiques à l’exemple PDP — seul le tableau products diffère.
La structure ressemble à ceci :
fetch à /api/public/strategy/evaluate sont inchangés par rapport au schéma PDP ci-dessus — seul le tableau products passe de [productContext] au tableau dérivé du panier.
Ce qui se passe quand la Strategy renvoie un résultat
evaluationId est un identifiant unique pour cette évaluation. Si vous le capturez et l’attachez aux produits que vous affichez, vous pouvez attribuer la commande résultante à la recommandation exacte qui l’a produite — voir Attribution ci-dessous.
La manière dont vous affichez le tableau products dépend entièrement du code de votre thème. L’extrait PDP ci-dessus les affiche sous forme de carrousel de cartes avec sélecteurs de variantes et boutons d’ajout au panier ; un bloc de panier personnalisé pourrait les afficher en liste verticale dans le tiroir.
Pour le schéma complet de requête et de réponse, consultez la référence de l’API Evaluate Strategy.
Quand aucun produit n’est renvoyé
products: []), c’est à votre code de décider comment gérer la situation. L’extrait PDP ci-dessus masque entièrement le carrousel. Un bloc de panier personnalisé pourrait se rabattre sur la liste d’upsells par défaut du panier, ou simplement ne rien afficher.
Pour éviter une réponse vide, configurez un Catch all dans la Strategy afin qu’il y ait toujours un produit de repli à renvoyer. Consultez la page Construire des Strategies pour savoir comment configurer un Catch all.
Conseils pour les intégrations personnalisées
- Construisez le contexte en Liquid. Liquid s’exécute au moment du rendu et a accès à l’ensemble du graphe d’objets Shopify — produit, panier, client, boutique, requête. Utilisez-le pour remplir la charge utile côté serveur plutôt que de recourir à des appels côté client.
- Gardez la clé API hors des dépôts publics. Elle finira dans le code de votre thème, qui est envoyé au navigateur — c’est acceptable. Mais ne collez pas le même thème dans un dépôt public et ne partagez pas le bundle en externe.
- Utilisez un Catch all. Les expériences de boutique semblent cassées quand un emplacement disparaît. Un Catch all avec un petit ensemble de valeurs par défaut sûres garde l’interface cohérente.
- Mettez en cache là où c’est pertinent. L’API Strategies effectue une mise en cache légère côté serveur (
meta.servedFromCache), mais pour les PDP à fort trafic, vous pouvez aussi vouloir temporiser (debounce) ou mémoïser les appels côté client (par ex. ne pas rappeler l’API lorsque le même produit est affiché deux fois dans une session).
Attribution
/cart/add.js attache des propriétés de ligne d’article à l’article du panier :
Attribuer à l’évaluation d’origine
evaluationId de la réponse et attachez-le à la ligne d’article sous la propriété __as_offer_id. AfterSell lit cette clé, donc les commandes qui la portent sont attribuées à l’évaluation spécifique dans les rapports.
Dans le gestionnaire evaluate(), conservez l’identifiant de la réponse :
__as_offer_id — c’est la clé qu’AfterSell recherche, et le préfixe underscore la garde masquée pour les acheteurs. Si evaluationId est absent (par exemple, aucun produit n’a été renvoyé), omettez la propriété plutôt que d’envoyer une valeur vide.