Le configurateur se résume à un script et un élément HTML. Vous n’installez rien sur votre serveur pour l’intégrer. Tout ce qui suit peut être répété dans un sandbox avant la mise en production.
Le code
La catégorie Embedding code de la console écrit l’extrait pour vous sous la forme que vous choisissez : HTML simple (quatre variantes), WordPress, un bouton SKU WooCommerce, ou un lien autonome avec un code QR. Sa forme est la suivante :
<script type="module" src="https://cfg.cutoptim.com/embed/assets/latest/cutoptim-configurator.js"></script>
<cutoptim-configurator mode="inline" key="YOUR_PUBLISHABLE_KEY"
api="https://cfg.cutoptim.com" lang="en"></cutoptim-configurator>
La clé, l’adresse du service et la langue proviennent de votre console. Une fenêtre contextuelle ou un panneau latéral utilise un bouton pour l’ouvrir :
<button data-cutoptim-open="#cut" data-material="MDF-18">Cut this board to size</button>
<cutoptim-configurator id="cut" mode="modal" key="YOUR_PUBLISHABLE_KEY"
api="https://cfg.cutoptim.com" lang="en"></cutoptim-configurator>
Modes et attributs
| Attribut | Signification |
|---|---|
mode |
inline (par défaut), modal (fenêtre contextuelle) ou drawer (panneau latéral) |
key |
votre clé publiable |
lang |
la langue côté client |
material |
un panneau de votre catalogue, par identifiant ou nom exact ; le parcours démarre alors sur la liste de coupe |
thickness |
restreint material en millimètres ; seul, il ne sélectionne rien |
template |
un modèle de meuble pour démarrer |
start |
catalog, cutlist ou template |
project |
un projet enregistré à charger |
customer-token |
votre propre référence opaque du client connecté, jusqu’à 128 caractères |
width, height |
la taille du conteneur hôte, en longueurs CSS simples |
Une fenêtre contextuelle ou un panneau latéral ne charge rien avant sa première ouverture, si bien qu’une grille de produits comptant de nombreux boutons reste légère. Plusieurs configurateurs sur une même page fonctionnent de façon indépendante. Un attribut à la valeur invalide est ignoré, jamais appliqué à moitié.
Depuis un script, l’élément propose open(), close(), setMaterial(), loadProject() et setCustomerToken(). Il émet des événements sur lui-même : cutoptim:ready, step, quote, order, project, error, open et close.
Page autonome, QR et iframe
Le même configurateur peut fonctionner comme une page à part entière : faites un lien vers elle, imprimez le code QR pour un comptoir de magasin ou une borne, ou envoyez-la à un client. Une page qui ne peut pas charger de script peut afficher cette page dans une iframe ; seuls les domaines que vous listez peuvent l’afficher, et les messages entre l’iframe et votre page ne sont acceptés que de ces domaines.
Domaines autorisés
La clé publiable ne fonctionne que depuis les domaines listés pour elle. Vous listez les domaines de votre boutique, y compris un éventuel domaine de préproduction, lorsque vous créez la clé dans la catégorie Keys & embedding ; une requête provenant de toute autre origine est refusée.
Habillage de marque
Les couleurs, le rayon des angles, la typographie, le mode clair ou sombre et tous les textes visibles par le client, en dix langues, se règlent dans la console et s’appliquent sans modifier votre page. La page peut aussi styliser des parties du widget grâce aux sélecteurs CSS ::part.
Une version épinglée, avec intégrité
Par défaut, l’extrait charge le build mobile latest. Lorsque le service conserve les versions, la console peut proposer à la place un extrait épinglé : une version numérotée précise avec un hachage integrity, de sorte que le navigateur refuse un fichier qui a été modifié. Une variante plus stricte épingle aussi les parties chargées à la demande. Les versions sont signées, une version publiée ne change jamais, et une version antérieure reste disponible pour que vous puissiez l’épingler aussi longtemps que nécessaire. Pour une Content Security Policy stricte, la console affiche les directives à autoriser. Les extraits épinglés supposent que le service conserve les versions ; d’ici là, la console ne propose que l’extrait mobile.
Projets enregistrés
Un client peut enregistrer une liste de coupe et y revenir. Le premier enregistrement crée un jeton privé que le navigateur conserve ; par défaut, un projet n’est donc disponible que sur ce navigateur. Il n’y a pas de synchronisation entre appareils basée sur une connexion, et le client ne peut pas supprimer un projet enregistré ; les projets non commandés sont effacés après votre durée de conservation.
Retour vers votre panier
Lorsque le client commande, le configurateur émet l’événement de commande sur votre page. Sur la page autonome, il peut aussi renvoyer le client vers votre boutique après une commande réussie : vous définissez une adresse de retour (https uniquement, sur votre propre domaine) et le client voit une brève confirmation avec un bouton Back to the shop. Le prix ne doit jamais être repris du navigateur ni de l’adresse de retour : votre serveur vérifie d’abord le devis. La marche à suivre se trouve sur la page des commandes ; un plug-in prêt à l’emploi pour WooCommerce est sur sa propre page et le code de référence pour toute autre boutique est sur la page des plateformes sur mesure.