<viewer-3dvue> é um Web Component nativo. Integra-se em qualquer template Smarty — product.tpl, override de módulo, ou hook personalizado. Sem módulo PrestaShop adicional.
{* Em <head> ou no seu layout principal *} <script src="https://cdn.jsdelivr.net/gh/3dvue/api@v4/viewer-3dvue-min.js"></script>
<viewer-3dvue name="meuVisor" src="https://app.3dvue.fr/view?p=AB01-CD02" ></viewer-3dvue> {* É tudo. *}
Um Web Component nativo compatível com os templates Smarty do PrestaShop 1.7 e 8.x. Sem dependência PHP, sem módulo para publicar no Addons Marketplace.
O método recomendado é usar o hook displayHeader a partir de um módulo personalizado ou diretamente no seu template. Também pode incluí-lo em product.tpl se trabalhar diretamente sobre o tema.
src do componente é o URL específico do seu configurador, fornecido pela 3DVue na entrega do projeto.
public function hookDisplayHeader() { return '<script src="https://cdn.jsdelivr.net/gh/3dvue/api@v4/viewer-3dvue-min.js"></script>'; } // Ou diretamente no seu template Smarty: {* <script src="https://cdn.jsdelivr.net/gh/3dvue/api@v4/viewer-3dvue-min.js"></script> *}
Cole a etiqueta no seu template de produto Smarty, na coluna esquerda ou numa zona dedicada. Pode condicionar a visualização com {if} para mostrá-la apenas em certas categorias ou referências.
product.tpl e novas secções Hummingbird.
{* Condicionar por ID de produto se necessário *} {if $product.id == 42} <viewer-3dvue name="meuVisor" src="https://app.3dvue.fr/view?p=AB01-CD02" ></viewer-3dvue> {/if} {* Ou com debug ativado *} <viewer-3dvue name="meuVisor" src="https://app.3dvue.fr/view?p=AB01-CD02" debug ></viewer-3dvue>
O PrestaShop gera os selects de combinações dinamicamente. Adicione os atributos viewer-3dvue através do Smarty nos seus selects de combinações, ou use a API JS para escutar o evento updateProduct nativo do PrestaShop.
{* Via atributos HTML nos selects *} {foreach $product.groups as $group} <select viewer-3dvue="meuVisor" viewer-3dvue-change="setMaterial" viewer-3dvue-mesh="1" > {foreach $group.attributes as $attr} <option value="{$attr.id_material}"> {$attr.name} </option> {/foreach} </select> {/foreach}
O componente escuta automaticamente os eventos click e change em qualquer elemento com os atributos corretos. Compatível com os selects de combinações nativos do PrestaShop e os módulos de swatches.
{foreach $cores as $c} <button viewer-3dvue="meuVisor" viewer-3dvue-clic="setMaterial" viewer-3dvue-meshs-materials='{{"1":"{$c.id_mat}"}}' > {$c.name} </button> {/foreach}
updateProduct e sincronize o visualizador.const viewer = document.querySelector( 'viewer-3dvue[name="meuVisor"]' ); // Escutar as mudanças de combinação PS document.addEventListener( 'updateProduct', (e) => { const idMat = e.detail.id_material; viewer.setMaterial({"1": idMat}); } );
Controlo programático completo — útil para sincronizar o visualizador com o sistema de combinações AJAX do PrestaShop, ou para captura de imagem e exportação de prova de impressão.
const viewer = document.querySelector('viewer-3dvue[name="meuVisor"]'); // Mudar vários materiais ao mesmo tempo viewer.setMaterial({ "1": "0n", "3": "2b" }); // Num segmento específico viewer.setMaterial({ "1": "1a" }, 1);
viewer.captureToBase64(); viewer.addEventListener("onCaptureBase64Complete", (e) => { const { base64 } = e.detail; // Injetar num campo oculto do formulário 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); });
Referência da API, atributos HTML, eventos, exemplos Smarty do PrestaShop. Tudo está documentado.
Ver a documentaçãoSem tickets automáticos. Fala diretamente com Matthieu, o programador que concebeu a API. Resposta em 24h.
Reservar uma reuniãoExperimente o configurador antes de o integrar. Verá o que os seus clientes verão na sua loja PrestaShop.
Ver a demoVocê gere o código no PrestaShop, nós tratamos do resto — modelação, materiais, configuração. Em 30 minutos dizemos-lhe o que podemos fazer.