> ## 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.

# Отслеживание событий добавления в корзину Klaviyo в Upcart

> В этой статье объясняется, как включить точное отслеживание событий Klaviyo, когда покупатели добавляют товары в корзину с помощью Upcart.

<div id="overview">
  # Обзор
</div>

По умолчанию Upcart берёт на себя функциональность корзины Shopify, что может помешать сторонним приложениям, таким как **Klaviyo**, обнаруживать обновления корзины. К счастью, есть два надёжных способа восстановить отслеживание **Add to Cart (ATC)** в Klaviyo, сохранив Upcart активным.

Прежде чем начать, убедитесь, что **Klaviyo Onsite Tracking** правильно настроен. Вы можете воспользоваться их руководством по настройке здесь:\
👉 [Руководство по настройке Klaviyo Onsite Tracking](https://help.klaviyo.com/hc/en-us/articles/4425956184731)

***

<div id="option-1-use-ajax-compatibility-fastest-setup">
  ## Вариант 1. Используйте совместимость с AJAX (самая быстрая настройка)
</div>

В Upcart есть настройка, которая восстанавливает совместимость с другими приложениями, открывая нативное поведение обновления корзины Shopify. Когда она включена, Klaviyo снова может отслеживать события Add to Cart.

<div id="how-to-enable">
  ## Как включить:
</div>

1. Перейдите в **Upcart > Cart Editor > Settings > Cart settings**
2. Прокрутите до раздела **Advanced Settings** и разверните его
3. Отметьте **Enhanced Ajax API compatibility**
4. Нажмите **Save** и проверьте результат

⚠️ **Важно: компромиссы Enhanced AJAX API Compatibility**\
Эта настройка **отключена по умолчанию** для большинства магазинов. Включайте её ТОЛЬКО если ваш магазин использует нестандартный AJAX cart API и Upcart не перехватывает события добавления в корзину. Когда она включена, другие приложения получают больше контроля над поведением корзины, что может вызвать циклы перенаправлений или отправлять покупателей на страницу корзины Shopify вместо открытия выдвижной корзины Upcart. Если включение этой настройки вызывает перенаправления, отключите её и перейдите к **варианту 2**, используя ручной API Upcart (`upcartRegisterAddToCart`).

Полное руководство по этой настройке см. в статье [Enhanced AJAX API Compatibility](/ru/upcart/enhanced_ajax_api_compatibility).

***

<div id="option-2-recommended-add-a-custom-klaviyo-script">
  ## Вариант 2 (рекомендуется): добавьте пользовательский скрипт Klaviyo
</div>

Этот метод даёт вам лучшее из обоих миров: **Upcart сохраняет полный контроль**, а **отслеживание Klaviyo продолжает работать**.

<div id="steps">
  ## Шаги:
</div>

1. Откройте **Upcart > Cart Editor > Settings**
2. Прокрутите вниз до раздела **Custom HTML**
3. В выпадающем списке выберите **Scripts (Before Load)**
4. Вставьте следующий скрипт:

Современный API (рекомендуется):

```
<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>
  Вставьте весь блок целиком, включая функцию `TrackATC`. Подписчик вызывает её, поэтому фрагмент, содержащий только две строки `upcartSubscribe…`, будет выбрасывать `Uncaught ReferenceError: TrackATC is not defined` при каждом добавлении в корзину и ничего не отправит в Klaviyo.
</Warning>

Устаревший API (всё ещё работает, но объявлен устаревшим):

```
<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">
  ## Что это делает:
</div>

* Отправляет событие «Added to Cart» в Klaviyo каждый раз, когда товар или апселл добавляется через Upcart
* Добавляет подтверждающее сообщение (`Klaviyo ATC`) в консоль браузера, чтобы вы знали, что всё работает

***

<div id="how-to-test-your-setup">
  ## Как протестировать настройку
</div>

Чтобы убедиться, что интеграция с Klaviyo работает правильно:

* Следуйте [руководству Klaviyo по тестированию событий Add to Cart](https://help.klaviyo.com/hc/en-us/articles/4425956184731)
* Используйте вкладку **Console** браузера, чтобы убедиться, что запись «Klaviyo ATC» появляется после добавления товара
* Проверьте панель аналитики Klaviyo на наличие данных о событиях ATC

Если вы всё ещё не видите данных отслеживания, убедитесь, что onsite-скрипты Klaviyo установлены и включены. За помощью обращайтесь в [центр поддержки Klaviyo](https://help.klaviyo.com/hc/en-us).

***

<div id="summary">
  ## Резюме
</div>

|                                                  |                                           |                                                  |
| ------------------------------------------------ | ----------------------------------------- | ------------------------------------------------ |
| Метод                                            | Преимущества                              | Когда использовать                               |
| **Вариант 1** — включить совместимость с AJAX    | Самая быстрая настройка, код не требуется | Когда другие приложения не мешают                |
| **Вариант 2** — добавить пользовательский скрипт | Самый надёжный, Upcart сохраняет контроль | Когда вариант 1 вызывает перенаправление корзины |

Если вы используете Klaviyo и Upcart вместе, это руководство поможет вам плавно отслеживать события, сохранив при этом работу выдвижной корзины без изменений.

***

Нужна дополнительная помощь? Обратитесь к нам через поддержку в приложении.
