Prestashop
Ajoutez des boutons « Ajouter à Wallet » Apple Wallet et Google Wallet à une boutique PrestaShop à l’aide d’un module, d’une signature HMAC côté serveur et du SDK cinto de The Wallet Crew.
Cette intégration explique comment ajouter un bouton unique « Add to Wallet » vers le Mon compte zone dans PrestaShop. Cette intégration PrestaShop Apple Wallet / Google Wallet aide les clients à enregistrer un carte de fidélité ou d’adhésion (et éventuellement une carte-cadeau Wallet) directement dans leur Wallet mobile, en utilisant un identifiant disponible dans la session client PrestaShop.

La personnalisation de la boutique PrestaShop se fait généralement via des modules et des surcharges de thème. Ce guide se concentre sur une approche basée sur un module afin de conserver les secrets côté serveur et de maintenir l’intégration facile à entretenir lors des mises à jour du thème.
Comment ça marche
Le SDK cinto de The Wallet Crew affiche le bon CTA selon l’appareil.
Sur iOS, le bouton télécharge une Carte Apple Wallet. Sur Android, il ouvre Google Wallet. Sur ordinateur, le SDK redirige vers une page de Carte hébergée qui peut être scannée ou ouverte sur mobile.
Dans cette configuration PrestaShop, la Carte est récupérée à l’aide d’un type de Carte (exemple : utilisateur) et un identifiant externe dérivé de la session du client connecté. L’identifiant est signé avec un HMAC calculé côté serveur. Cela rend l’échange d’identifiants inviolable et évite d’exposer les secrets dans la boutique.
Le HMAC doit être calculé côté serveur. Il ne doit pas être généré dans le navigateur.
Prérequis
Un modèle de Carte et une émission de Carte déjà configurés dans The Wallet Crew.
L’identifiant du tenant The Wallet Crew disponible (utilisé par l’URL du script du SDK).
Un identifiant stable disponible sur les pages authentifiées.
Un nom de clé d’identifiant externe convenu lors de l’intégration.
L’identifiant stable est souvent l’ID client PrestaShop. Un projet peut aussi utiliser un ID CRM s’il est stocké sur l’entité client et reste stable dans le temps.
Approche d’implémentation (module + hook ou surcharge de thème)
Les modules PrestaShop peuvent injecter des blocs dans les pages à l’aide de hooks. Les thèmes peuvent également être surchargés lorsqu’un placement plus spécifique est requis.
Le schéma d’intégration recommandé reste cohérent avec celui des autres plateformes de commerce électronique.
Lire un identifiant stable côté serveur.
Calculer un HMAC avec le secret du tenant.
Rendre un élément conteneur cinto avec le type de Carte, l’identifiant et le HMAC.
Charger le script du SDK cinto une seule fois par page.
Où placer le bouton
Les emplacements courants sont :
Le Mon compte tableau de bord, à côté du numéro de fidélité ou d’adhésion.
Une page dédiée Wallet / Fidélité dans l’espace de compte.
Une page de liste de cartes cadeau, avec un bouton par carte cadeau.
La disponibilité des hooks dépend du thème et de la version de PrestaShop. De nombreux projets utilisent un hook de module pour le tableau de bord du compte. Certains projets utilisent une surcharge de thème pour placer le bouton dans une section spécifique.
Étapes de configuration
Choisir le contrat d’identifiant externe
The Wallet Crew récupère ou crée une Carte à partir de :
passType(exemple :utilisateur)externalIdentifier.key(exemple :prestashop.customer_id)externalIdentifier.value(par exemple : l’ID du client connecté)externalIdentifier.hmac(HMAC-SHA256 de la valeur)
Les clés d’identifiant doivent rester stables dans le temps. Les clés en minuscules réduisent les problèmes de casse des attributs HTML et facilitent la maintenance à long terme.
Stocker la configuration du tenant et le secret côté serveur
L’ID du tenant peut être utilisé côté client. Le secret HMAC doit rester côté serveur.
Les approches courantes dans les déploiements PrestaShop sont :
des variables d’environnement injectées par la plateforme d’hébergement.
Un magasin de configuration côté serveur géré par le module, avec un contrôle d’accès strict dans le back-office.
Le secret ne doit pas être stocké dans les fichiers du thème ni rendu en HTML. Seul le HMAC calculé doit parvenir à la boutique.
Construire un petit module qui affiche le bouton
Le module :
S’enregistre sur un hook lié au compte, ou fournit un petit contrôleur pour une page de compte dédiée.
Lit l’ID du client connecté à partir du contexte de session.
Calcule le HMAC à l’aide du secret côté serveur.
Affecte l’ID du tenant, le type de Carte, la valeur de l’identifiant et le HMAC aux variables du template.
La mise en cache doit être gérée explicitement. Les pages de compte ne doivent pas être mises en cache entre les clients.
Charger le SDK cinto une seule fois par page
Le chargeur du SDK cinto doit être inclus une seule fois par page. Lorsque plusieurs boutons existent sur la même page, le chargeur doit être placé dans un partial de pied de page ou d’en-tête partagé et le balisage du bouton doit être répété pour chaque Carte.
Si la boutique utilise des en-têtes de sécurité qui restreignent les scripts tiers, il faut autoriser le domaine d’hébergement du SDK.
Valider le résultat
La validation couvre généralement le rendu de la plateforme et l’installation de la Carte.
Dans Safari sur iOS, le CTA doit afficher Ajouter à Apple Wallet.
Dans Chrome sur Android, le CTA doit afficher Ajouter à Google Wallet.
Sur ordinateur, le CTA doit rediriger vers une page de Carte hébergée.
Après installation, la Carte doit être visible dans Apple Wallet ou Google Wallet.
Dépannage
Le bouton ne s’affiche pas
Les causes les plus courantes sont un chargement du SDK bloqué (CSP ou restrictions de script) ou un balisage manquant. Le HTML final doit contenir :
un script chargeur du SDK cinto
un élément conteneur configuré comme bouton « Add to Wallet »
Cliquer sur le bouton provoque une erreur
Cela signifie généralement que l’identifiant externe ou le HMAC ne correspond pas à ce qu’attend The Wallet Crew. Vérifiez :
Le nom de la clé d’identifiant externe correspond à celui configuré pour le tenant.
La valeur de l’identifiant correspond exactement à ce qui est signé côté serveur.
Le HMAC est calculé avec le bon secret du tenant.
Le bouton s’affiche pour le mauvais client
Cela indique généralement une mise en cache entre les sessions. Vérifiez que :
les pages de compte ne sont pas mises en cache au niveau de la page
tout reverse proxy ou CDN respecte les cookies de session sur les routes authentifiées
FAQ
Mis à jour

