Instale o script JS do Zonos
Sua integração personalizada precisará incluir o trecho de JavaScript do Zonos. Este script é responsável por renderizar a interface do Checkout, o Zonos Hello, processar pagamentos e detectar o geo-IP do visitante.
Instale o trecho de JS do Zonos
O script de Elementos do Zonos está disponível no seguinte URL:
Zonos trecho de JS
<script src="https://js.zonos.com/dist/scripts/loadZonos.js" />
Lidar com o cache do navegador
Também costumamos recomendar anexar um carimbo de data/hora ou outro identificador único à 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. Por exemplo:
Zonos trecho de JS
<script>
(async function () {
const timestamp = new Date().getTime();
const zonosScript = document.querySelector(
`script[src*="https://js.zonos.com/dist/scripts/loadZonos.js"]`,
);
if (!zonosScript) {
const script = document.createElement('script');
script.src = `https://js.zonos.com/dist/scripts/loadZonos.js?timestamp=${timestamp}`;
script.addEventListener(
'load',
() => {
// Initialize the script here (instructions in next section)
},
false,
);
document.head.appendChild(script);
}
})();
</script>
Autenticar o trecho de código JS do Zonos
Depois de carregar o script JS do Zonos, você precisa autenticá-lo passando uma Zonos chave de API e ID da loja para a função Zonos.init
. As chaves de API usadas para autenticar o Checkout são projetadas para serem publicáveis, o que significa que podem ser usadas com segurança no código frontend sem expor informações sensíveis.
Zonos trecho de código JS
Zonos.init({
// ... other fields
zonosApiKey: 'API KEY', // Replace with your actual API key (found in Dashboard)
storeId: 'STORE ID', // Replace with your actual store ID (found in Dashboard)
// ... other fields
});
Definir domínios permitidos
Para garantir que o script JS do Zonos seja carregado apenas em sites permitidos, filtramos as solicitações com base em uma lista de "domínios permitidos". Esta lista é configurada no Dashboard. Sem essa configuração, o script JS do Zonos retornará erros de permissão em vez de carregar corretamente.
Para atualizar seus domínios permitidos:
- Vá para Dashboard -> Configurações -> Configurações do Checkout.
- Na seção Domínios permitidos, adicione o(s) domínio(s) onde você integrará o Checkout.
- Clique em Salvar.
Configurar Zonos Hello
Depois de configurar o script JS do Zonos, você precisa configurar o Hello para funcionar com seu site. O Hello é responsável por detectar a localização, idioma e moeda do visitante e exibir as informações apropriadas para ele. O Hello é necessário ao usar o Checkout.
Você pode configurar todas as configurações do Hello tanto no Dashboard quanto no script JS do Zonos. Se você já configurou o Hello no Dashboard, o script carregará essas configurações e as usará. Se você especificar quaisquer valores na propriedade helloSettings
da função Zonos.init
, o script usará esses valores em vez disso.
Configurar conversão de moeda
O Hello usa seletores CSS para identificar elementos em seu site que exibem informações de moeda. Você precisará passar esses seletores para a propriedade helloSettings.currencyElementSelector
da função Zonos.init
.
Você pode usar qualquer seletor CSS válido aqui, por exemplo #price, .price
para selecionar vários elementos diferentes.
Zonos JS snippet
Zonos.init({
// ... other fields
helloSettings: {
// ... other fields
currencyElementSelector: '#price, .price', // Replace with your actual selector
},
});
Configurar restrições de itens
Hello tem a capacidade de verificar itens restritos enquanto o comprador navega e impedi-los de serem adicionados ao carrinho. Para que isso funcione, Hello precisa saber informações adicionais sobre o item, como o nome e a descrição, bem como o "botão adicionar ao carrinho". Você pode passar seletores CSS para Hello para permitir que ele raspe essas informações da página.
Zonos trecho de JS
Zonos.init({
// ... other fields
helloSettings: {
// ... other fields
productAddToCartElementSelector: '.add-to-cart',
productDescriptionElementSelector: '.description',
productPriceElementSelector: '.price',
productTitleElementSelector: '.title',
},
});
Opcional — Abrir automaticamente Hello ao carregar a página
Por padrão, Hello só será aberto quando o visitante clicar no botão da bandeira. Se deseja abrir automaticamente Hello ao carregar a página, pode chamar a função Zonos.openHelloDialog()
assim que o script do Zonos tiver carregado.
Zonos trecho de JS
Zonos.init({
// ... other fields
});
Zonos.openHelloDialog();
Configurar Zonos Checkout
Uma vez que o Hello tenha sido configurado, você precisa configurar o Checkout para funcionar com o seu site. O Checkout é responsável por permitir que o cliente insira suas informações de envio, calcule o landed cost e complete o pedido.
O Checkout compartilhará dados contextuais com o Hello, como a localização do visitante, idioma e moeda. Isso garante que a experiência do cliente seja consistente em todo o processo de compra.
Você pode configurar todas as configurações do Checkout tanto no Dashboard quanto no script JS do Zonos. Se você já configurou o Checkout no Dashboard, o script carregará essas configurações e as usará. Se você especificar quaisquer valores na propriedade checkoutSettings
da função Zonos.init
, o script usará esses valores em vez disso.
Configurar o botão 'finalizar pedido'
O script JS do Zonos reconhecerá automaticamente os compradores internacionais e os direcionará para o fluxo do Checkout. No entanto, você precisará configurar o botão 'finalizar pedido' na 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 finalizar um pedido, certifique-se de passar um seletor que corresponda a todos eles. Por exemplo, #placeOrder, .place-order
corresponderá tanto a #placeOrder
quanto a .place-order
.
Zonos JS snippet
Zonos.init({
// ... other fields
checkoutSettings: {
// ... other fields
placeOrderButtonSelector: '#placeOrder', // Replace with your actual selector(s)
},
});
Passar detalhes do carrinho apenas para visualização no Checkout
A função buildCartDetail
é responsável por retornar os detalhes do carrinho em um formato que a interface do Checkout possa entender e exibir. Esta função é chamada assim que o cliente chega à página de checkout, garantindo que os detalhes do carrinho sejam exibidos com precisão na primeira página do Checkout. Por favor, note que isso não é usado para cálculos - isso é tratado no próximo passo.
Zonos trecho de código JS
Zonos.init({
// ... other fields
checkoutSettings: {
// ... other fields
buildCartDetail: async () => {
// ... Your existing buildCartDetail implementation
// This should return cart details for UI display
},
},
});
Esquema do item do carrinho
A função buildCartDetail
deve retornar uma matriz de itens do carrinho. Abaixo está uma tabela detalhando a estrutura de cada objeto CartItem
:
Nome do Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
amount | Número | Sim | O valor do preço do item. |
countryOfOrigin | String | Não | O país de origem do item. |
currencyCode | String | Sim | O código da moeda para o valor. |
description | String | Não | Descrição do item. |
hsCode | String | Não | O código do Sistema Harmonizado para o item. |
imageUrl | String | Não | URL da imagem do item. |
measurements | ItemMeasurement[] | Não | Matriz de medições do item. |
metadata | Objeto (pares string/número) | Não | Metadados adicionais sobre o item. |
name | String | Sim | Nome do item. |
productId | String | Não | O ID do produto. |
quantity | Número | Sim | Quantidade do item no carrinho. |
sku | String | Não | Identificador da Unidade de Manutenção de Estoque. |
Transmitir com segurança o landed cost para o Checkout
A função buildLandedCost
lida com o cálculo seguro do landed cost. Ela é invocada após o cliente inserir suas informações de envio. Esta função calcula as taxas de envio e outros custos necessários, que são então exibidos na página subsequente do Checkout.
É importante que você lide com a lógica de cálculo do landed cost no lado do servidor, pois esta é a única maneira de garantir que os detalhes do carrinho não sejam expostos ao navegador do cliente. Se você estiver usando uma arquitetura serverless, pode usar uma função serverless para lidar com o cálculo do landed cost. A função buildLandedCost
deve simplesmente chamar a função serverless/ponto de extremidade da API e retornar o resultado.
No lado do servidor, você pode usar a API do Zonos Checkout para calcular o landed cost usando a seguinte solicitação POST
. Você precisará passar a chave da API que tem usado para o script JS do Zonos no cabeçalho credentialToken
.
Request URL
https://v1.route.js.zonos.com/api/zonos-elements/calculate-landed-cost
Corpo da solicitação
{
"billingAddress": {
"addressLine1": "789 King Street",
"city": "London",
"country": "GB",
"postalCode": "SW1A 1AA",
"state": "England"
},
"billingContact": {
"firstName": "John",
"lastName": "Doe",
"phone": "+44-20-7946-0958"
},
"checkoutSessionId": "xyz789",
"contact": {
"firstName": "John",
"lastName": "Doe",
"phone": "+44-20-7946-0958"
},
"items": [
{
"amount": 150,
"currencyCode": "USD",
"name": "Product Name",
"quantity": 2
}
],
"shippingAddress": {
"addressLine1": "789 King Street",
"city": "London",
"country": "GB",
"postalCode": "SW1A 1AA",
"state": "England"
}
}
Zonos trecho de JS
Zonos.init({
// ... other fields
checkoutSettings: {
// ... other fields
buildLandedCost: async (checkoutSessionId, contact, shippingAddress) => {
// This should return the landed cost calculation
},
},
});
Integração personalizada
Construa uma integração completa de Checkout em seu site personalizado.
Este guia abrange os aspectos técnicos para concluir uma integração completa do Zonos Checkout em seu site ou plataforma personalizada. Destina-se a desenvolvedores que se sintam confortáveis trabalhando com JavaScript e tenham experiência com desenvolvimento frontend. Todos os passos são necessários, a menos que indicado de outra forma.
Pré-requisitos
Este guia abrange os aspectos técnicos para concluir uma integração completa do Zonos Checkout em seu site ou plataforma personalizada. Destina-se a desenvolvedores que se sintam confortáveis trabalhando com JavaScript e tenham experiência com desenvolvimento frontend. Todos os passos são necessários, a menos que indicado de outra forma.
Pré-requisitos