Trinio.js SDK
Documentação para integração com os serviços da Trinio através do Trinio.js SDK.
Sumário
Como carregar o SDK
Para utilizar o Trinio.js no navegador, adicione o script na página da sua loja. Após o carregamento, a API fica disponível em window.Trinio.SDK.
Script Tags
Adicione a tag no <head> ou no final do <body> da sua página HTML:
Carregamento dinâmico (Alternativo)
Caso prefira carregar o script dinamicamente via JavaScript, utilize o exemplo abaixo com callback de onReady:
Inicialização
Antes de chamar qualquer método, inicialize o SDK com o seu merchantId. Basta fazer isso uma única vez na página.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
merchantId | string | Sim | ID do merchant fornecido pela Trinio |
Dica
Chamar um método antes de init (ou com um merchantId vazio) lança um TrinioConfigError. Inicialize o SDK o quanto antes no carregamento da página.
visitor.getId()
Retorna um identificador de visitante estável (UUID v4). Na primeira chamada o valor é gerado no client e persistido em localStorage; nas chamadas seguintes o mesmo valor é retornado. É o identificador enviado no header x-trinio-visitor-id das chamadas à API da Trinio.
O cartSimulate já chama visitor.getId() internamente — você só precisa usar este método diretamente se quiser obter o id por conta própria (ex.: para propagá-lo em outras integrações).
Consistência A/B
Esse identificador mantém o usuário na mesma variante de testes A/B entre a simulação e o checkout. Veja Visitor ID e consistência A/B na Simulation API.
vtex.cartSimulate()
Simula um carrinho VTEX a partir da Trinio, retornando a resposta original da simulação VTEX junto com as opções de frete geradas pelo motor de roteamento. O SDK injeta automaticamente os headers x-trinio-merchant-id (do init) e x-trinio-visitor-id (do visitor.getId()), e reconcilia o visitor id em cache caso o servidor devolva um valor diferente.
Exemplo
Parâmetro req
A estrutura do req é a mesma do corpo da requisição da Simulation API. Consulte o Request Body da Simulation API para a lista completa de campos (incluindo clientProfileData para promoções cluster-based e leanShipping).
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cartSimulation | object | Sim | Carrinho a simular (items, postalCode, country, ...). Ver Simulation API. |
leanShipping | boolean | Não | Retorna no máximo a opção mais rápida e a mais econômica. Default: false. |
Retorno
| Campo | Tipo | Descrição |
|---|---|---|
cartSimulation | object | Resposta original da simulação VTEX, sem modificações. |
shippingMethods | array | Opções de frete geradas pelo motor de roteamento. Ver Campos da Response. |
visitorId | string | Identificador de visitante usado na chamada (ecoado ou emitido pelo servidor). |
Tratamento de erros
Os métodos do SDK lançam classes de erro tipadas. Use instanceof ou a propriedade code para tratá-las.
| Erro | code | Quando ocorre |
|---|---|---|
TrinioConfigError | trinio_config | init não foi chamado, ou o merchantId é inválido/vazio. |
TrinioApiError | trinio_api | A API respondeu com erro HTTP. Inclui status e problem (detalhes). |
TrinioNetworkError | trinio_network | A requisição falhou na rede (sem resposta do servidor). |
TrinioTimeoutError | trinio_timeout | A requisição excedeu o tempo limite (10s por padrão). |
Usando o Trinio Checkout SDK?
O id de visitor.getId() pode ser passado na prop trinioVisitorId do createCheckout para manter a mesma variante A/B do carrinho até o checkout.