Documentação de Integração
Manual para desenvolvedores integrarem o BELIA em lojas e-commerce.
1. Inclusão do script
Inclua o script do BELIA em todas as páginas da loja onde você quiser rastrear busca, vitrines, visualização de produto, carrinho e compra. A base da API é a mesma origem da loja (host + porta).
<script src="https://www.agliardi.xyz/belia/belia.js" data-belia-key="SUA_PUBLIC_KEY" data-belia-env="prod"></script>
Alternativa: use meta tags no <head> em vez de data-attributes no script:
<meta name="belia-site-key" content="SUA_PUBLIC_KEY" />
<meta name="belia-env" content="prod" />
<meta name="belia-api-base" content="https://sua-origem.com" /> <!-- opcional, padrão: window.location.origin -->
2. Objeto window.Belia
Após o carregamento, o script expõe:
Belia.base— base da APIBelia.key— site keyBelia.visitor_id/Belia.session_id— identificadores do visitanteBelia.setLastTerm(term)— define o termo de busca atual (para atribuição de compra ao termo)Belia.boot()— reescaneia a página (útil após injetar HTML dinâmico, ex.: modal de produto)
3. Eventos e onde integrar
| Evento | Onde usar | Como |
|---|---|---|
| Vitrines (impressão) | Blocos de produtos (ex.: “Mais vistos”, “Compre junto”) | O script detecta automaticamente itens com data-belia-showcase + data-belia-product (ou data-showcase-block + data-showcase-item) e envia impressão quando o item entra em vista (~60% visível). |
| Clique em vitrine | Mesmo bloco de vitrine | Clique em um produto do bloco. Não dispara se o clique for em botão de carrinho/compra. |
| Visualização de produto | Página ou modal do produto | Adicione data-belia-product-page e data-belia-product="ID_EXTERNO" no container da página/modal do produto. O script chama trackProductView ao carregar (com TTL 5 min por produto/sessão). |
| Adicionar ao carrinho | Botão “Adicionar ao carrinho” | No botão: data-belia-add-to-cart e data-belia-product="ID_EXTERNO". Opcional: data-belia-qty="1". |
| Compra | Botão “Finalizar compra” / “Registrar compra” | No botão: data-belia-purchase, data-belia-product="ID_EXTERNO", data-belia-value-cents="9999". Opcional: data-belia-qty="1". O script envia o evento de compra e, se houver termo de busca em contexto (setLastTerm), atribui a compra ao termo. |
4. Atribuição de compra ao termo de busca
Para que cliques em “Comprar” sejam atribuídos ao termo que o usuário buscou, o script usa um termo “último” em localStorage. Se sua busca ou abertura de produto for feita por JavaScript (ex.: SPA ou Livewire), dispare um evento para atualizar esse termo:
window.dispatchEvent(new CustomEvent('belia-set-last-term', { detail: { term: 'macacao' } }));
Ou chame diretamente: window.Belia.setLastTerm('macacao'). Faça isso ao exibir resultados de busca ou ao abrir a ficha do produto a partir da busca.
5. Resumo dos data-attributes
- Vitrine: no bloco:
data-belia-showcase="slug-da-vitrine",data-belia-page="home"(ou página atual). No item:data-belia-product="ID_EXTERNO",data-belia-position="1". - Página de produto: no container:
data-belia-product-page+data-belia-product="ID_EXTERNO". - Carrinho:
data-belia-add-to-cart+data-belia-product="ID_EXTERNO"(+data-belia-qtyopcional). - Compra:
data-belia-purchase+data-belia-product="ID_EXTERNO"+data-belia-value-cents(+data-belia-qtyopcional).
Teste todos os endpoints da API pelo Swagger. Informe a Public Key e o ambiente uma vez e execute as requisições.
Abrir SwaggerAutenticação
Todas as requisições à API devem enviar o header:
X-BELIA-SITE-KEY: SUA_PUBLIC_KEY
Para ambiente de teste, use o parâmetro environment=test (query string ou body). O padrão é prod.
Endpoints usados na integração
Estes endpoints são chamados pelo belia.js ou podem ser usados diretamente pelo e-commerce (ex.: para buscar resultados de busca ou listar vitrines).
| Método / Rota | Uso na integração |
|---|---|
GET /api/v1/pages/{type} |
Componentes da página (home, category, etc.). Usado se a loja montar a página a partir da API. |
GET /api/v1/showcases |
Lista de vitrines ativas. Use para montar o menu ou blocos (ex.: “Mais vistos”, “Mais comprados”). |
GET /api/v1/showcases/{slug} |
Dados de uma vitrine por slug (nome, estratégia, janela, limite). |
GET /api/v1/showcases/{slug}/products |
Produtos da vitrine (com scores e dados para exibição). Query: environment=test|prod. |
GET /api/v1/products/{externalId} |
Detalhes de um produto por ID externo (sku). Use na página ou modal do produto. |
GET /api/v1/search |
Busca com redirecionamentos, sinônimos e correção. Query: q, page, limit, environment. |
GET /api/v1/search/autocomplete |
Autocomplete e sugestões. Query: q (vazio = top termos), limit. |
GET /api/v1/search/metrics |
Métricas do dia (buscas, CTR, conversões). Query: environment=test|prod. |
GET /api/v1/catalog/products |
Listagem do catálogo com filtros (marca, categoria, preço, ordenação) e facetas. |
POST /api/v1/events/showcase-impression |
Enviado pelo belia.js quando um item de vitrine entra em vista. Body: showcase_slug, page, items (array de { product_external_id, position }), session_id, visitor_id, environment. |
POST /api/v1/events/showcase-click |
Enviado pelo belia.js no clique em produto de vitrine. Body: showcase_slug, product_external_id, position, page, session_id, visitor_id, environment. |
POST /api/v1/events/product-view |
Visualização de produto. Body: product_external_id, qty (opcional), term (opcional, para atribuição), session_id, visitor_id, environment. |
POST /api/v1/events/add-to-cart |
Adicionar ao carrinho. Body: product_external_id, qty, term (opcional), session_id, visitor_id, environment. |
POST /api/v1/events/purchase |
Compra. Body: product_external_id, qty, value_cents, term (opcional), session_id, visitor_id, environment. |
POST /api/v1/search/click |
Clique em um termo/sugestão da busca. Body: term, product_external_id (opcional). Chamado pela loja ao registrar clique em resultado/autocomplete. |
POST /api/v1/search/purchase |
Atribuição de compra ao termo (alimenta métricas de conversão por termo). O belia.js chama após POST /api/v1/events/purchase quando há termo em contexto. Body: term, revenue_cents, product_external_id, qty, session_id, visitor_id. |
Base URL
A base da API deve ser a mesma origem do site onde o script está instalado (ex.: https://minhaloja.com), ou a URL do backend que expõe a API Belia. O script usa window.location.origin por padrão; para override, use meta name="belia-api-base" ou window.Belia.apiBase antes do script carregar.