API JavaScript do provador
O provador tem uma API JavaScript para abrir e fechar a janela pelo código da loja. Para a maioria dos casos, o atributo data-reverbs-trigger resolve sem JavaScript. Veja Modos de instalação.
O que existe em cada provador
Seção intitulada “O que existe em cada provador”| Provador | Objeto | Saber quando está pronto |
|---|---|---|
| Ambientes (móveis, pisos e paredes) | window.reverbsWidget |
window.reverbsWidgetReady ou o evento reverbs:ready |
| Moda e óculos | window.reverbsWidgetFashion |
O evento reverbs:fashion:init |
| Medidas | Não tem API para abrir pelo código. |
Provador de ambientes
Seção intitulada “Provador de ambientes”window.reverbsWidgetReady
Seção intitulada “window.reverbsWidgetReady”Uma Promise criada quando o script do provador começa a rodar.
- Resolve com o próprio provador (o mesmo objeto de
window.reverbsWidget) quando ele termina de carregar e de procurar o produto da página. - Rejeita com um objeto
{ code, message, userId }quando o provador não consegue carregar. Usemessageno seu registro de erros.
Ela só existe depois que o script da Provei começa a rodar. Como o script carrega de forma assíncrona, confira se ela já existe e, se não, espere o evento reverbs:ready:
function quandoOProvadorEstiverPronto(callback) { if (window.reverbsWidgetReady) { window.reverbsWidgetReady.then(callback, function (erro) { console.warn("Provador indisponível:", erro.message); }); return; } window.addEventListener("reverbs:ready", function (event) { callback(event.detail.widget); }, { once: true });}window.reverbsWidget.open()
Seção intitulada “window.reverbsWidget.open()”Abre a janela do provador. Não recebe parâmetros e não devolve nada.
Não faz nada quando:
- o produto da página não está no catálogo da Provei ou não está ativo;
- a janela está no formato Dentro da página;
- o provador já está aberto.
window.reverbsWidget.close()
Seção intitulada “window.reverbsWidget.close()”Fecha a janela do provador. Não faz nada se ela já está fechada. O cliente também fecha pelo X, pela tecla Esc ou clicando fora da janela.
window.reverbsWidgetOwnerId
Seção intitulada “window.reverbsWidgetOwnerId”O identificador da conta dona do provador carregado na página, como texto. Use para conferir qual conta está instalada.
Exemplo
Seção intitulada “Exemplo”<button type="button" id="ver-no-ambiente">Ver no meu ambiente</button>
<script> document.getElementById("ver-no-ambiente").addEventListener("click", function () { if (window.reverbsWidget && typeof window.reverbsWidget.open === "function") { window.reverbsWidget.open(); } });</script>Provador de moda e de óculos
Seção intitulada “Provador de moda e de óculos”O provador de moda e o de óculos usam window.reverbsWidgetFashion, com os mesmos métodos open() e close() e as mesmas regras: só abre em produtos do catálogo e ativos, e não abre no formato Dentro da página.
Não há Promise de prontidão. Consulte o objeto no momento do clique:
<script> document.getElementById("experimentar").addEventListener("click", function () { var provador = window.reverbsWidgetFashion; if (provador && typeof provador.open === "function") { provador.open(); } });</script>Para saber quando ele terminou de carregar, ouça reverbs:fashion:init. Veja Eventos do provador.
Boas práticas
Seção intitulada “Boas práticas”- Chame
open()a partir de uma ação do cliente, como um clique. Abrir sozinho, sem o cliente pedir, atrapalha a compra. - Não chame métodos que não estão nesta página. Outras propriedades dos objetos podem mudar sem aviso.
- Para reagir ao carrinho, à identificação do cliente ou a erros, use os eventos do provador.
Perguntas frequentes
Chamar open() gera uma prova?
Não. open() só mostra a janela do provador. O cliente ainda envia a foto, e só a prova gerada usa créditos.
Por que open() não faz nada?
O provador só abre em páginas de produtos que estão no catálogo da Provei e ativos. Ele também não abre no formato Dentro da página nem quando já está aberto.
A API funciona no provador de moda?
Sim, com outro nome. No provador de moda e de óculos, use window.reverbsWidgetFashion.open() e window.reverbsWidgetFashion.close().