Chargez Estaly.js
Ajoutez le script avant votre code d’intégration, puis initialisez Estaly avec votre clé publique. Aucun bundler ni package npm n’est nécessaire.
La clé publique peut apparaître dans la page. Votre clé API secrète reste exclusivement côté serveur. Chargez Estaly.js une seule fois par page.
À ce stade, rien n’est affiché au client.
Décrivez le produit à protéger
BUT transmet category: "seats" pour un siège ou "furniture" pour un meuble, ainsi que le prix TTC du produit. Vous gardez votre propre mapping catalogue.
Les prix sont en euros par unité : 599.99, pas 59999. Utilisez une référence de ligne panier stable, distincte du SKU produit.
Les données sont prêtes. Aucun composant n’est encore affiché.
Affichez l’offre dans votre page
Placez un conteneur au-dessus du bouton d’achat ou dans le panier latéral, puis montez le composant. Il affiche d’abord l’offre, le prix et « Choisir cette protection ».
Après ce clic seulement, Estaly affiche les deux questions, les documents et la case de consentement. Le composant gère ce parcours : BUT ne construit pas le questionnaire.
Dans l’aperçu, cliquez sur « Choisir cette protection » pour ouvrir le conseil.
Récupérez le choix et ajoutez l’assurance
Quand le client clique sur « Ajouter la protection », le SDK enregistre les réponses et le consentement auprès du backend Estaly. Après confirmation, il appelle onAdd(selection) avec le selection_id renvoyé par Estaly et les informations utiles au panier. Votre serveur BUT ajoute l’assurance et conserve cette référence avec la ligne panier.
Renvoyez { insurance_line_reference_id } uniquement après succès. En cas d’erreur, rejetez la promesse : Estaly conserve les réponses et propose un nouvel essai.
« Protection ajoutée » apparaît après la confirmation de votre panier.
Testez votre intégration
Dans l’aperçu : choisissez une protection, répondez aux questions, consultez les documents et cochez le consentement. Ajoutez ensuite la protection et ouvrez « Données panier » pour voir ce que reçoit BUT.
Vous pouvez aussi lire protection.getSelection() depuis votre propre bouton d’ajout au panier. Cette lecture n’ajoute rien : protection.add() déclenche le même callback onAdd.
Une seule ligne d’assurance est liée à la ligne produit. Aucun contrat n’est créé à cette étape.