Lista de verificação de integração
Siga esta lista de verificação completa para configurar sua conta Zonos Dashboard e integrar o Zonos Checkout em seu site ou plataforma personalizada.
Crie uma conta Zonos
Para começar, entre em contato com nossa equipe de vendas para criar uma conta e assinar um contrato. Assim que o contrato for assinado, você receberá dois microdepósitos em sua conta que deverão ser verificados.
Envie esses valores de microdepósito por e-mail para Accounting@zonos.com com seu ID de loja do Dashboard (com uma cópia para seu representante de vendas).
Depois de verificados, seus dados bancários serão exibidos em Painel -> Configurações -> Cobrança.
Definir configurações do Painel e Checkout
Depois de criar sua conta Zonos, você precisará definir as configurações no Dashboard para garantir que o Checkout funcione corretamente com sua loja. Esta seção cobre todas as configurações essenciais do Dashboard.
Configurar pagamentos
Conecte uma conta bancária para receber pagamentos pontuais do Checkout. Os pagamentos são processados diariamente com um atraso de 2 dias a partir da cobrança do pagamento. Para fazer isso, siga estas etapas:
- Navegue até Painel -> Configurações -> Configurações de finalização de compra.
- Clique em Adicionar conta bancária
- Você será direcionado a um portal Stripe para concluir a configuração e fornecer as seguintes informações:
- Informações da conta bancária.
- EIN da empresa.
- Número de Segurança Social de proprietário com 25% da empresa. Para obter mais detalhes sobre por que isso é necessário, consulte o documentação da listra.
Observação: Se você precisar atualizar seu calendário de pagamentos, entre em contato com support@zonos.com
Configurar domínios permitidos
O script Zonos JS requer uma lista de domínios permitidos por motivos de segurança. Isso evita que sites não autorizados carreguem o script e garante que ele seja executado apenas nos domínios aprovados. Sem essa configuração, o script retornará erros de permissão.
Para configurá-lo:
- Navegue até Painel -> Configurações -> Configurações de finalização de compra
- Em URLs, adicione seu domínio completo e quaisquer subdomínios onde o Checkout será usado. Por exemplo, se o seu domínio for
example.com, você deve adicionarexample.cometest.example.com.
Personalize as configurações da marca
Defina as configurações de sua marca no Dashboard para combinar com a aparência da sua loja.
Para fazer isso, siga estas etapas:
- Navegue até Painel -> Configurações -> Configurações de checkout -> Marca
- Defina as seguintes configurações:
-Logotipo.
- Marca e cor de destaque.
- Tema, estilo e fonte.
Para obter mais informações sobre configurações de marca, consulte nosso documentação.
Conecte uma transportadora
Para cotar o frete na finalização da compra, você precisará conectar uma transportadora à sua conta Zonos. Isso permitirá que você habilite níveis de serviço de remessa específicos na finalização da compra.
Para conectar uma transportadora, siga estas etapas:
- Navegue até Painel -> Configurações -> Frete -> Taxas
- Clique em Adicionar operadora
- Siga as instruções de configuração da operadora.
Para obter mais detalhes sobre como conectar contas de operadora, consulte nosso documentação.
Configurar zonas de envio
As zonas de envio permitem configurar quais transportadoras e níveis de serviço estão disponíveis para diferentes regiões do mundo.
Para configurar zonas de envio, siga estas etapas:
- Navegue até Painel -> Configurações -> Frete -> Locais
- Clique em Nova zona
- Insira um nome de zona e selecione os países para os quais deseja enviar.
- Selecione a operadora e o nível de serviço que deseja oferecer.
Para mais detalhes sobre áreas de envio, consulte nosso documentação.
Defina um país de origem e código HS de backup
O país de origem e o código HS são usados para calcular impostos e taxas com precisão.
Se você não fornecer um país de origem ou código HS específico, usaremos os valores substitutos configurados no Dashboard.
Para definir seu país de origem e código HS de backup:
- Navegue até Painel -> Configurações -> Frete -> Catálogo.
- Para país de origem, selecione o país onde a maioria dos seus produtos é fabricada.
- Para o código HS, insira o código HS do seu produto mais comum. Se você não tiver um código HS, navegue até Classificar no Dashboard e insira o nome e a descrição do produto para gerar um código HS preciso.
Instale o snippet Zonos JS
O snippet Zonos JS é uma integração JavaScript do lado do cliente que permite a funcionalidade de checkout global em seu site. Serve como ponte entre sua plataforma de e-commerce e os serviços Zonos, gerenciando:
- Experiência de checkout: renderize a interface de checkout e processe pagamentos.
- Serviços de localização: detecta a localização do visitante e gerencia a conversão de moeda.
- Integração de carrinho: conecta-se ao seu carrinho e sistema de pedidos existente.
- Segurança: valida domínios e autentica solicitações de API.
O snippet é carregado de forma assíncrona para evitar qualquer impacto no desempenho do seu site. Ele é inicializado com as credenciais da API da sua loja e lida com todas as interações do lado do cliente com segurança. A implementação foi projetada para ser não intrusiva, exigindo alterações mínimas no fluxo de checkout existente.
Abaixo está um exemplo completo, incluindo carregamento de script, inicialização e manipulação de eventos para referência ao integrar o Checkout.
(async function () { const timestamp = new Date().getTime(); const zonosScript = document.querySelector( `script[src*="https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/loadZonos.js"]`, ); if (!zonosScript) { const script = document.createElement('script'); script.src = `https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/loadZonos.js?timestamp=${timestamp}`; script.addEventListener('load', () => { window..({ : { : () => { { : , }; }, : , }, : { : , : { .(); }, }, : , : , }); }); ..(script); } })();Observação: Substitua os valores de espaço reservado (storeId, zonosApiKey, seletores, etc.) pelos valores reais do Zonos Dashboard.
Gerenciar cache do navegador
Recomendamos adicionar um carimbo de data/hora ou outro identificador exclusivo ao URL para garantir que o script não seja armazenado em cache pelo navegador. Isso garantirá que a versão mais recente do script seja sempre carregada. Isso é mostrado na linha 10 do exemplo completo.
script.src = `https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/loadZonos.js?timestamp=${timestamp}`;Autenticar fragmento Zonos JS
Depois de carregar o script Zonos JS, você precisa autenticá-lo passando uma chave de API pública Zonos e um ID de armazenamento para a função Zonos.init. A chave API pública usada para autenticar o Checkout foi projetada para ser publicável, o que significa que pode ser usada com segurança no código frontend sem expor informações confidenciais.
Para encontrar seu ID da loja e chave de API, navegue até Painel -> Configurações -> Integrações. Certifique-se de não usar uma chave de API secreta, pois ela não foi projetada para ser usada em código de front-end. Isso é mostrado nas linhas 29 e 30 do exemplo completo.
Zonos.init({ // ... other fields zonosApiKey: 'Your API KEY', // Replace with your actual API key (found in Dashboard) storeId: 'Your STORE ID', // Replace with your actual store ID (found in Dashboard) // ... other fields});Atualize sua Política de Segurança de Conteúdo (CSP)
Se o seu site estabelecer um Política de segurança de conteúdo, adicione os domínios abaixo às políticas CSP correspondentes. Esta política se aplica tanto ao Checkout quanto ao Hello: o fragmento Zonos carrega scripts, folhas de estilo, fontes, imagens e faz solicitações de rede, portanto, bloquear qualquer um desses recursos interromperá o fluxo do Checkout ou a exibição do Hello. A lista de style-src também se aplica a style-src-elem.
Observação: pule esta etapa se seu site não enviar um cabeçalho CSP. Somente os comerciantes que aplicam um CSP personalizado em suas páginas precisam atualizá-lo.
cdn.jsdelivr.net/npm/@zonoscdnjs.cloudflare.com/ajax/libs/zonos-elementsunpkg.com/@zonos/elementsjs.zonos.com*.js.zonos.comzonos-store-assets.s3.amazonaws.comjs.stripe.coma.stripecdn.comb.stripecdn.comc.stripecdn.comcheckout.stripe.comf.stripecdn.comhcaptcha.comhooks.stripe.comm.stripe.comm.stripe.networkpay.stripe.compayments.stripe.comq.stripe.comr.stripe.comConfigurar Olá
Olá é obrigatório ao usar o Checkout.
Hello é responsável por detectar a localização, idioma e moeda do visitante e exibir as informações apropriadas. Você pode configurar todos Olá configurações no Dashboard ou no script Zonos JS. Se você já configurou o Hello no Dashboard, o script carregará essas configurações e as utilizará. Se você especificar valores na propriedade helloSettings da função Zonos.init, o script usará esses valores, conforme mostrado abaixo.
Defina a conversão de moeda para Hello no script JS
Hello usa seletores CSS para identificar elementos em seu site que exibem informações monetárias. Passe esses seletores para a propriedade helloSettings.currencyElementSelector da função Zonos.init para que o Hello possa detectar e exibir a moeda correta do comprador internacional.
Você pode usar qualquer seletor CSS válido aqui por exemplo #price, .price para selecionar vários itens diferentes. Isso é mostrado nas linhas 23 e 24 do exemplo completo.
Zonos.init({ // ... other fields helloSettings: { currencyElementSelector: '.price', // Replace with your actual selector }, // ... other fields});Abra o Hello automaticamente no carregamento da página
Por padrão, o Hello só será aberto quando o visitante clicar no botão da bandeira. Se quiser abrir o Hello automaticamente quando a página carregar, você pode chamar a função Zonos.openHelloDialog() assim que o script Zonos for carregado. Isso é mostrado nas linhas 25 e 26 do exemplo completo.
Zonos.init({ : { : { .(); }, },});Configure regras de exibição de país no Dashboard
Controle quais países compradores veem Hello e quais países aparecem no menu suspenso do seletor de países no Painel. Navegue até Painel -> Configurações -> Olá e procure a seção Regras de exibição do país.
Visibilidade do widget
Controle quais países compradores veem o widget Hello. Escolha uma das regras básicas e use as listas Sempre mostrar e Nunca mostrar para substituir países específicos.
- Todos os países - Todos os países que o Hello suporta.
- Apenas países que podem ser enviados - Países para os quais você envia a partir de suas configurações de envio.
- Sempre mostrar - Países que sempre aparecem, mesmo que a regra básica os exclua.
- Nunca mostrar - Países que nunca aparecem, mesmo que a regra básica os inclua.

Seletor de país
Controle quais países aparecem no menu suspenso do seletor de país Olá, usando as mesmas regras básicas, além das substituições Sempre mostrar e Nunca mostrar.

Configurar Check-out
O Checkout é responsável por permitir que o cliente insira suas informações de envio e faturamento, calcule o custo final, receba o pagamento e conclua o pedido.
O Checkout compartilhará dados contextuais com o Hello, como localização, idioma e moeda do visitante. Isso garante que a experiência do cliente seja consistente durante todo o processo de compra.
Você pode definir todas as configurações do Checkout no Dashboard e no script Zonos JS. Se você já configurou o Checkout no Dashboard, o script irá carregar essas configurações e utilizá-las. Se você especificar valores na propriedade checkoutSettings da função Zonos.init, o script usará esses valores.
Configure o botão “fazer pedido” no script JS
O script Zonos JS reconhecerá automaticamente os compradores internacionais e os direcionará para o fluxo de Checkout. Porém, você precisará configurar o botão “fazer pedido” em sua plataforma para abrir o Checkout quando clicado. Isso pode ser feito passando um seletor CSS para a propriedade checkoutSettings.placeOrderButtonSelector da função Zonos.init.
Se você tiver vários botões que podem ser usados para fazer um pedido, passe um seletor para cada botão. Por exemplo, #placeOrder, .place-order.
Isso é mostrado na linha 21 do exemplo completo.
Zonos.init({ // ... other fields checkoutSettings: { // ... other fields placeOrderButtonSelector: '#placeOrder', // Replace with your actual selector(s) },});Crie detalhes do carrinho com segurança no servidor
Para exibir os detalhes do carrinho para o cliente, você precisa criar uma função do lado do servidor que chame a API Zonos para criar um carrinho e, em seguida, retornar esse ID do carrinho para o seu frontend. Isso garantirá que os detalhes do carrinho não sejam expostos ao cliente de uma forma que possa ser manipulada.
Sua chamada de API de backend usará um token de credencial GraphQL secreto, que é diferente do token público que você usa para autenticar o script Zonos JS. Este token pode ser recuperado em Painel -> Configurações -> Integrações. O token secreto deve ser passado como cabeçalho na sua chamada de API.
A mutação cartCreate aceita uma lista de itens, que devem ser formatados de acordo com o esquema de itens do carrinho.
// Create new cart from serversideasync function createCart() { /** * Full cart mutation schema: https://zonos.com/developer/mutations/cartCreate * */ const graphql = JSON.stringify({ query: `mutation cartCreate($input: CartCreateInput!){ cartCreate(input: $input) { id adjustments { amount currencyCode description productId sku type } items { id name amount currencyCode quantity sku description metadata { key value } } metadata { key value } }}`, variables: { /** * input for the cartCreate is this schema https://zonos.com/developer/types/CartCreateInput */ input: { /** * Cart adjustment input: https://zonos.com/developer/types/CartAdjustmentInput */ adjustments: [ { amount: -10, currencyCode: 'USD', /** * Enum value: https://zonos.com/developer/types/CartAdjustmentType */ type: 'CART_TOTAL', }, ], /** * Cart item input: https://zonos.com/developer/types/ItemInput */ items: [ { name: 'Item 1', amount: 150.99, currencyCode: 'USD', description: 'Item 1 description', quantity: 2, }, ], /** * Cart metadata input: https://zonos.com/developer/types/CartMetadataInput */ metadata: [ { : , : , }, ], }, }, }); response = (, { : , : { : , : , }, : graphql, }); { data } = response.(); data..; }Sugerimos criar um endpoint de API em seu servidor e, em seguida, chamar esse endpoint a partir de sua integração JS de front-end, que é detalhada na próxima etapa.
Passe o ID do carrinho para o Checkout através do frontend
Depois de criar um carrinho em seu servidor, você precisa passar o ID do carrinho para o script Zonos JS. Isso pode ser feito usando o retorno de chamada createCartId, que faz parte da função Zonos.init. O Checkout recuperará com segurança os detalhes do carrinho Zonos quando aberto, evitando qualquer manipulação do carrinho. Veja o exemplo de código abaixo.
O valor de createCartId não pode ser um valor estático; Deve ser uma função.
Zonos.init({ // ... other fields checkoutSettings: { // Replace with your actual selector(s) createCartId: async () => { const response = await fetch('https://api.merchant.com/api/get-cart', { method: 'POST', headers: { 'Content-Type': 'application/json', }, }); const json = await response.json(); return json.id; // Only need to return the cart ID }, },});(Opcional) Mostrar um aviso abaixo do total do pedido
Se precisar exibir uma mensagem curta e dinâmica no Checkout – por exemplo, uma divulgação regulatória quando um produto específico está no carrinho – você pode retornar uma matriz customMessage do retorno de chamada createCartId. Cada entrada na matriz é renderizada em sua própria linha de um único banner informativo diretamente abaixo de Total do pedido.
Sintaxe de ligação Markdown —[link label] seguido pela (https://example.com)— é renderizado como uma tag âncora, para que os compradores possam clicar. Os URLs https:// Os simples no texto também são vinculados automaticamente. Todo o resto é renderizado como texto simples, então o HTML nas strings é escapado em vez de executado.
Apenas um banner é exibido por Checkout, não importa quantas linhas você passe.
Zonos.init({ // ... other fields checkoutSettings: { createCartId: async () => { const response = await fetch( 'https://api.merchant.com/api/get-zonos-cart', { method: 'POST', headers: { 'Content-Type': 'application/json', }, }, ); const json = await response.json(); return { cartId: json.id, // Each item is rendered on a new line of the same info banner. // Markdown links `[text](url)` become `<a>` tags. customMessage: [ 'Some items in your cart are subject to California regulations.', 'Please review the required notice [here](https://oag.ca.gov/prop65).', ], }; }, },});Observação: O texto da mensagem é renderizado como texto simples: as tags HTML em strings têm escape, portanto, apenas a sintaxe de ligação do Markdown é interpretada. Decida se deseja incluir
customMessageno servidor com base no conteúdo do carrinho para que o banner só apareça quando for relevante.
(Opcional) Ativar Zone Checkout programaticamente
Se você tiver uma lógica personalizada e precisar acionar a verificação de Zonos programaticamente, poderá usar a função Zonos.triggerCheckoutInternational() para abrir a janela de checkout do Zonos após a inicialização do Zonos. Isso invocará o retorno de chamada createCartId definido em Zonos.init acima e abrirá a janela de checkout do Zonos.
// For example: During your domestic checkout flow, trigger Zonos checkout when the user selects a non-domestic country (e.g., not "US")const domesticCountry = 'US';document.querySelector('.country-select').addEventListener('change', e => { const country = e.target.value; if (country !== domesticCountry) { Zonos.triggerCheckoutInternational(); }});(Opcional) Seletor que sempre ativa Zone Checkout
Se quiser separar o processo de checkout para compradores nacionais e internacionais, você pode adicionar um botão International checkout para sua casa. Em vez de ativar manualmente as Zonos Checkout com Zonos.triggerCheckoutInternational, você pode configurar Zonos.init com o seletor apropriado. A chave ficará desabilitada até que o Zonos seja inicializado; Ao clicar no botão, ele ativará automaticamente o checkout de Zonos. Isso invocará o retorno de chamada createCartId definido em Zonos.init e abrirá a janela de checkout do Zonos.
Zonos.init({ // ... other fields checkoutSettings: { // ... other fields alwaysTriggerInternationalCheckoutSelector: '#trigger-zonos-checkout', // Replace with your actual selector, button bound to this selector will always trigger Zonos checkout },});(Opcional) Siga o funil de checkout com GA4 ou Facebook Pixel
O Zonos Checkout pode encaminhar todo o funil de checkout para suas ferramentas analíticas existentes. Para cada etapa, Zonos emite:
- O evento original
zonos-checkout-...para GA4 (viagtag('event', ...)) e para Meta como um evento personalizado (viafbq('trackCustom', ...)). - A meta padrão de correspondência de eventos, quando existe —
InitiateCheckout,AddPaymentInfoePurchase- para que os relatórios integrados de otimização e conversão do Meta funcionem imediatamente.
A forma como os eventos chegam aos seus provedores depende de como o Checkout é renderizado no seu site. Escolha o caminho que corresponde à sua integração.
Integração nativa (o Checkout é renderizado diretamente no seu site)
Quando o elemento personalizado <zonos-checkout> é montado em sua própria página (o padrão para a integração de script Zonos JS descrita acima), o window.gtag e window.fbq as próprias páginas já estão no escopo. Zonos os chama diretamente - sem necessidade de retransmissão ou transferência de ID de pixel.
Configuração:
- Certifique-se de que sua página já tenha a tag base GA4 e/ou o código base Meta Pixel carregados (da mesma forma que você rastrearia qualquer outra página em seu site).
- Habilite os provedores desejados no painel Zonos em Configurações de checkout → Rastreamento (Google Analytics, Facebook Pixel ou ambos).
Isso é tudo. Sem script de retransmissão, não customHTML, sem IDs adicionais para transmitir: detecção de Zonos gtag / fbq na página e disparar eventos diretamente.
Integração com iframe (checkout de iframe herdado em iglobalstores.com)
Quando o Checkout está hospedado em um iframe em uma origem diferente, ele não pode acessar diretamente o gtag / fbq da sua página. Zonos lança pequeno script de retransmissão — analyticsRelayOnInit.js — que escuta eventos postMessage do iframe Checkout e os encaminha para os provedores que você tem em sua página. Um único retransmissor gerencia GA4 e Facebook Pixel ao mesmo tempo.
Configuração:
- Habilite os provedores desejados no painel Zonos em Configurações de checkout → Rastreamento.
- Adicione a tag base GA4 e/ou o código base Meta Pixel ao
<head>da página que hospeda o iframe do Checkout. - Adicione o script de retransmissão após as tags do provedor:
async src="https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/analyticsRelayOnInit.js">- Passe os IDs correspondentes pelo seu
customHTMLFaça check-out para que o relé saiba qual propriedade/pixel disparar:
window.Zonos.googleAnalyticId = 'G-XXXXXXXXXX'; window.Zonos.facebookPixelId = 'YOUR_PIXEL_ID';Para obter instruções passo a passo do iframe, a referência completa do evento (incluindo mapeamento de carga útil de purchase / Purchase) e dicas de depuração, consulte:
Sincronize o rastreamento e o status do pedido no Dashboard
Para sincronizar pedidos entre seu sistema e o Zonos Dashboard, implemente estas chamadas de API e webhooks:
Mutações obrigatórias
| Mutação↕ | Descrição↕ |
|---|---|
orderUpdateAccountOrderNumber | Sincroniza o número da sua conta nativa com o Dashboard. Documentos → |
orderAddTrackingNumber | Obrigatório somente se você não imprimir etiquetas no Dashboard. Garante que o rastreamento seja exibido no Dashboard para que Zonos possa garantir seus cálculos de custo no destino. Documentos → |
Webhooks necessários
| Webhook↕ | Descrição↕ |
|---|---|
ORDER_CREATED | Necessário para enviar pedidos do Checkout para sua plataforma nativa. Documentos → |
ORDER_STATUS_CHANGED | Mantém seu sistema sincronizado com o Zonos quando o status do pedido muda (por exemplo, atendido, cancelado). Documentos → |
Teste sua integração
Antes de lançar sua integração com o Checkout, é importante testar exaustivamente todos os aspectos da integração para garantir uma experiência tranquila para o cliente. Isso inclui testar o fluxo de checkout, processamento de pagamentos, criação de pedidos e funcionalidade de webhook.
Siga nosso guia de testes para verificar se sua integração está funcionando corretamente e identificar e corrigir quaisquer problemas antes de liberar para produção.
Perguntas frequentes
Abaixo estão algumas perguntas frequentes sobre o processo de integração.
Como o Zonos lida com a confirmação do pedido?
Configure a experiência pós-compra em Painel -> Configurações -> Configurações de finalização de compra em Tipo de página de sucesso. Existem três opções disponíveis:
- Mostrar página de sucesso do Zonos (padrão, recomendado) — O Zonos mostra uma página de agradecimento integrada após fazer o pedido. A página é sempre exibida, mesmo que o pedido não seja importado para o seu sistema, assim o comprador sempre recebe a confirmação.
- Redirecionar para uma página de sucesso — Zonos aguarda em uma breve tela “Pedido concluído” até que o pedido seja criado e, em seguida, redireciona para o URL de sucesso configurado
zOrderNumber(eorderIdpara carrinhos legados) adicionados como parâmetros de consulta. - Fechar o modal de checkout — Zonos fecha seu modal assim que o pagamento é capturado. Se você também configurar um URL de sucesso, o Zonos redirecionará para esse URL imediatamente após o Stripe receber o pagamento - sem esperar pela criação do pedido - e adicionar
zonosCheckoutSessionIdcomo um parâmetro de consulta. Use esta opção quando desejar a transferência mais rápida de volta para sua própria página de sucesso.
Pesquise o pedido de zonosCheckoutSessionId
Ao usar Fechar o modal de checkout com uma URL de redirecionamento, pode levar alguns segundos para que o pedido seja associado à sessão de checkout após o redirecionamento. Ler zonosCheckoutSessionId do URL e consulte a consulta GraphQL checkoutSession do seu servidor usando seu token de credencial secreto até que o pedido esteja pronto. Nunca chame isso do navegador — o token da credencial secreta deve permanecer no servidor.
query getCheckoutSession($id: String!checkoutSession )orderidEnvie a consulta para https://api.zonos.com/graphql com seu token de credencial secreto em Painel -> Configurações -> Integrações passado como cabeçalho da solicitação credentialToken.
Posso receber uma notificação quando um pedido for criado?
Sim. Se você deseja receber notificações quando um pedido for criado, no Dashboard, na seção E-mail de Configurações de finalização de compra, você pode inserir o endereço de e-mail dos membros da equipe que devem ser notificados quando um pedido for criado, enviado ou cancelado.
Integração personalizada
Crie uma integração completa do Checkout em seu site personalizado.