> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Rastreamento de eventos de adição ao carrinho do Klaviyo no Upcart

> Este artigo explica como habilitar o rastreamento preciso de eventos do Klaviyo quando os clientes adicionam itens ao carrinho usando o Upcart.

<div id="overview">
  # Visão geral
</div>

Por padrão, o Upcart assume a funcionalidade de carrinho do Shopify, o que pode impedir que apps de terceiros como o **Klaviyo** detectem atualizações do carrinho. Felizmente, existem duas maneiras confiáveis de restaurar o rastreamento de **Add to Cart (ATC)** no Klaviyo mantendo o Upcart ativo.

Antes de começar, certifique-se de que o **Klaviyo Onsite Tracking** esteja configurado corretamente. Você pode seguir o guia de configuração deles aqui:\
👉 [Guia de configuração do Klaviyo Onsite Tracking](https://help.klaviyo.com/hc/en-us/articles/4425956184731)

***

<div id="option-1-use-ajax-compatibility-fastest-setup">
  ## Opção 1: Use a compatibilidade AJAX (configuração mais rápida)
</div>

O Upcart inclui uma configuração que restaura a compatibilidade com outros apps ao expor o comportamento nativo de atualização do carrinho do Shopify. Quando ela está ativada, o Klaviyo volta a conseguir escutar eventos de Add to Cart.

<div id="how-to-enable">
  ## Como ativar:
</div>

1. Vá para **Upcart > Cart Editor > Settings > Cart settings**
2. Role até **Advanced Settings** e expanda
3. Marque **Enhanced Ajax API compatibility**
4. Clique em **Save** e teste o resultado

⚠️ **Importante: contrapartidas do Enhanced AJAX API Compatibility**\
Essa configuração fica **desativada por padrão** na maioria das lojas. Ative-a APENAS se sua loja usa uma API AJAX de carrinho fora do padrão e o Upcart não está interceptando eventos de adição ao carrinho. Quando ativada, outros apps ganham mais controle sobre o comportamento do carrinho, o que pode causar loops de redirecionamento ou enviar os clientes à página de carrinho do Shopify em vez de abrir o drawer do Upcart. Se ativar essa configuração causar redirecionamentos, desative-a e mude para a **Opção 2**, usando a API manual do Upcart (`upcartRegisterAddToCart`).

Para orientações completas sobre essa configuração, veja [Enhanced AJAX API Compatibility](/pt/upcart/enhanced_ajax_api_compatibility).

***

<div id="option-2-recommended-add-a-custom-klaviyo-script">
  ## Opção 2 (recomendada): Adicione um script personalizado do Klaviyo
</div>

Este método oferece o melhor dos dois mundos: **o Upcart mantém o controle total** e **o rastreamento do Klaviyo continua funcionando**.

<div id="steps">
  ## Passos:
</div>

1. Abra **Upcart > Cart Editor > Settings**
2. Role para baixo até a seção **Custom HTML**
3. No menu suspenso, escolha **Scripts (Before Load)**
4. Cole o seguinte script:

API moderna (recomendada):

```
<script>
  function TrackATC(){
    var _learnq = window._learnq || [];
    _learnq.push(['track', 'Added to Cart']);
    console.log("Klaviyo ATC");
  }

  window.upcartSubscribeAddedToCart(function(event) { TrackATC(); });
  window.upcartSubscribeUpsellsAddedToCart(function(event) { TrackATC(); });
</script>
```

<Warning>
  Cole o bloco inteiro, incluindo a função `TrackATC`. O subscriber a chama, então um trecho contendo apenas as duas linhas `upcartSubscribe…` gera `Uncaught ReferenceError: TrackATC is not defined` a cada adição ao carrinho e não envia nada ao Klaviyo.
</Warning>

API legada (ainda funciona, mas está obsoleta):

```
<script>  
  function TrackATC(){  
    var _learnq = window._learnq || [];  
    fetch(`${window.location.origin}/cart.js`)  
      .then((res) =>  
        res.clone().json().then((data) => {  
          var cart = {  
            total_price: data.total_price / 100,  
            $value: data.total_price / 100,  
            total_discount: data.total_discount,  
            original_total_price: data.original_total_price / 100,  
            items: data.items,  
          };  
          _learnq.push(['track', 'Added to Cart', cart]);  
          console.log("Klaviyo ATC");  
        }).catch((e) => {  
          console.error('Klaviyo add to cart tracking failed', e);  
        })  
      );  
  }  
  
  window.upcartOnAddToCart = () => { TrackATC(); };  
  window.upcartOnAddUpsell = () => { TrackATC(); };  
</script>
```

***

<div id="what-this-does">
  ## O que isto faz:
</div>

* Envia um evento "Added to Cart" ao Klaviyo sempre que um produto ou upsell é adicionado usando o Upcart
* Adiciona uma mensagem de confirmação (`Klaviyo ATC`) ao console do seu navegador para você saber que está funcionando

***

<div id="how-to-test-your-setup">
  ## Como testar sua configuração
</div>

Para confirmar que sua integração com o Klaviyo está funcionando corretamente:

* Siga o [guia do Klaviyo para testar eventos de Add to Cart](https://help.klaviyo.com/hc/en-us/articles/4425956184731)
* Use a aba **Console** do seu navegador para verificar se o log "Klaviyo ATC" aparece após adicionar um produto
* Verifique o painel de análises do Klaviyo em busca de dados de eventos ATC

Se você ainda não vir dados de rastreamento, confirme que os scripts onsite do Klaviyo estão instalados e ativados. Para obter ajuda, entre em contato com a [Central de ajuda do Klaviyo](https://help.klaviyo.com/hc/en-us).

***

<div id="summary">
  ## Resumo
</div>

|                                              |                                                |                                                     |
| -------------------------------------------- | ---------------------------------------------- | --------------------------------------------------- |
| Método                                       | Benefícios                                     | Quando usar                                         |
| **Opção 1** – Ativar a compatibilidade AJAX  | Configuração mais rápida, sem código           | Quando outros apps não interferem                   |
| **Opção 2** – Adicionar script personalizado | Mais confiável, o Upcart permanece no controle | Quando a Opção 1 causa redirecionamento do carrinho |

Se você usa Klaviyo e Upcart juntos, este guia deve ajudar a rastrear eventos sem problemas, mantendo a experiência do seu cart drawer intacta.

***

Precisa de mais ajuda? Fale conosco pelo suporte dentro do app.
