<viewer-3dvue> est un Web Component natif. Il s'intègre dans n'importe quel template Smarty — product.tpl, override de module, ou hook personnalisé. Aucun module PrestaShop supplémentaire requis.
{* Dans <head> ou votre layout principal *} <script src="https://cdn.jsdelivr.net/gh/3dvue/api@v4/viewer-3dvue-min.js"></script>
<viewer-3dvue name="monViewer" src="https://app.3dvue.fr/view?p=AB01-CD02" ></viewer-3dvue> {* C'est tout. *}
Un Web Component natif compatible avec les templates Smarty de PrestaShop 1.7 et 8.x. Aucune dépendance PHP, aucun module à soumettre sur l'Addons Marketplace.
La méthode recommandée est d'utiliser le hook displayHeader depuis un module custom ou directement dans votre template. Vous pouvez aussi l'inclure via product.tpl si vous intervenez au niveau du thème.
src du composant est l'URL spécifique à votre configurateur, fournie par 3DVue à la livraison du projet.
public function hookDisplayHeader() { return '<script src="https://cdn.jsdelivr.net/gh/3dvue/api@v4/viewer-3dvue-min.js"></script>'; } // Ou directement dans votre template Smarty : {* <script src="https://cdn.jsdelivr.net/gh/3dvue/api@v4/viewer-3dvue-min.js"></script> *}
Collez la balise dans votre template produit Smarty, dans la colonne gauche ou dans une zone dédiée. Vous pouvez conditionner l'affichage avec {if} pour ne l'afficher que sur certaines catégories ou références.
product.tpl et nouvelles sections Hummingbird.
{* Conditionner par ID produit si besoin *} {if $product.id == 42} <viewer-3dvue name="monViewer" src="https://app.3dvue.fr/view?p=AB01-CD02" ></viewer-3dvue> {/if} {* Ou avec debug activé *} <viewer-3dvue name="monViewer" src="https://app.3dvue.fr/view?p=AB01-CD02" debug ></viewer-3dvue>
PrestaShop génère les selects de combinaisons dynamiquement. Ajoutez les attributs viewer-3dvue via Smarty sur vos selects de combinaisons, ou utilisez l'API JS pour écouter l'événement updateProduct natif de PrestaShop.
{* Via attributs HTML sur les selects *} {foreach $product.groups as $group} <select viewer-3dvue="monViewer" viewer-3dvue-change="setMaterial" viewer-3dvue-mesh="1" > {foreach $group.attributes as $attr} <option value="{$attr.id_material}"> {$attr.name} </option> {/foreach} </select> {/foreach}
Le composant écoute automatiquement les événements click et change sur tout élément portant les bons attributs. Compatible avec les selects de combinaisons natifs PrestaShop et les modules de swatches.
{foreach $couleurs as $c} <button viewer-3dvue="monViewer" viewer-3dvue-clic="setMaterial" viewer-3dvue-meshs-materials='{{"1":"{$c.id_mat}"}}' > {$c.name} </button> {/foreach}
updateProduct et synchronisez le viewer.const viewer = document.querySelector( 'viewer-3dvue[name="monViewer"]' ); // Écouter les changements de combinaison PS document.addEventListener( 'updateProduct', (e) => { const idMat = e.detail.id_material; viewer.setMaterial({"1": idMat}); } );
Contrôle programmatique complet — utile pour synchroniser le viewer avec le système de combinaisons AJAX de PrestaShop, ou pour la capture d'image et l'export BAT.
const viewer = document.querySelector('viewer-3dvue[name="monViewer"]'); // Changer plusieurs matériaux d'un coup viewer.setMaterial({ "1": "0n", "3": "2b" }); // Sur un segment spécifique viewer.setMaterial({ "1": "1a" }, 1);
viewer.captureToBase64(); viewer.addEventListener("onCaptureBase64Complete", (e) => { const { base64 } = e.detail; // Injecter dans un champ caché du formulaire PS document.querySelector('#add-to-cart-or-refresh input[name="config_img"]').value = base64; });
viewer.exportSVG(); viewer.addEventListener("onSVGExportComplete", (e) => { const { path, error } = e.detail; if (!error) console.log("BAT SVG :", path); });
Référence API, attributs HTML, événements, exemples Smarty PrestaShop. Tout est documenté.
Voir la documentationPas de ticketing automatisé. Vous parlez directement à Matthieu, le développeur qui a conçu l'API. Réponse sous 24h.
Prendre un RDVTestez le configurateur avant d'intégrer. Voyez ce que vos clients verront sur votre boutique PrestaShop.
Voir la démoVous gérez le code côté PrestaShop, on s'occupe de tout le reste — modélisation, matières, configuration. En 30 minutes on vous dit ce qu'on peut faire.