Корзина посетителя

Агент видит, что лежит у посетителя в корзине: товары, вариант (цвет, размер), количество, цены и сумму. Это помогает продавать так, как продаёт хороший консультант в зале:

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

Корзина работает в обоих местах, где агент общается с посетителем: в триггерах, когда агент пишет первым, и в диалоге.

Как включить

Функция в бете и по умолчанию выключена. Включите её в Настройки агента → Общие → «Учитывать корзину посетителя». Переключатель виден, если ниша агента — «Интернет-магазин» (нишу можно поменять там же). Пока он выключен, виджет не читает корзину, а агент о ней не знает; подсказки с условием по корзине или токенами {товар}, {сумма}, {количество} не показываются.

Код установки менять не нужно: обновлённый виджет загрузится на сайт сам.

Видит ли виджет корзину на вашем сайте. После включения под переключателем появляется строка состояния — по визитам на сайт за последние 7 дней:

  • «Корзина подключена» — виджет сам читает корзину Shopify, WooCommerce или Tilda, либо сайт передаёт её строкой setCart;
  • «По событиям» — корзина собирается по событиям Wix Stores или электронной торговли Google Analytics / Яндекс Метрики (агент видит товары, которые посетитель добавлял);
  • «Корзина не читается» — магазин на Shopify или WooCommerce найден, но сайт не отдаёт корзину (адрес корзины отвечает ошибкой или закрыт защитой сайта); пока это так, агент корзину не видит;
  • «Корзина не найдена» — платформа не распознана: там же пример строки для разработчика с кнопкой «Копировать пример». Это именно пример: разработчик подставляет товары из корзины конкретного посетителя (для 1С-Битрикс — ссылка на способы ниже);
  • «Пока нет данных» — откройте свой сайт с виджетом, состояние появится через несколько минут.

Какие платформы подключаются сами

ПлатформаЧто нужно сделатьЧто видит агент
ShopifyНичегоВсю корзину
WooCommerce (WordPress)НичегоВсю корзину
TildaНичегоВсю корзину
Wix (Wix Stores)НичегоТовары, которые посетитель добавлял в корзину
1С-БитриксВключить электронную коммерцию Яндекс Метрики (см. ниже) или вставить сниппетС Метрикой — товары, которые добавлял посетитель; со сниппетом — всю корзину
Webflow, SquarespaceОдна строка кода (см. «Любой сайт»)Всю корзину
Любой другой сайтОдна строка кода, либо работает сам, если на сайте настроена электронная коммерция Google Analytics 4 или Яндекс МетрикиВсю корзину или товары, которые добавлял посетитель

«Товары, которые добавлял посетитель» означает, что корзина собрана по событиям «добавил» и «убрал». Она не знает товаров, положенных в корзину до установки виджета или на другом устройстве. Агент говорит о таких товарах осторожно и при необходимости уточняет. После покупки этот список очищается, через 7 дней без изменений забывается.

Что агент делает с корзиной

В диалоге. Агент получает корзину вместе с каждым сообщением посетителя и может говорить о ней естественно: «К свитеру из вашей корзины подойдёт шарф в том же цвете», «Эти два товара доставим за 2 дня». Если подключён каталог, агент сверяет товары корзины с каталогом и берёт наличие и характеристики оттуда.

Агент никогда не говорит, когда и как товары попали в корзину, и не обещает цену ниже, чем в вашем каталоге. Сумму и скидку он называет такими, какими их видит посетитель на сайте. Итоговую стоимость подтверждает оформление заказа.

В триггерах. У триггера есть условия «Корзина посетителя: Есть товары» и «Сумма корзины от»: их можно задать в Песочнице → «Контент» → триггер → «Расширенные настройки». А в тексте подсказки можно использовать три токена:

ТокенЧто подставится
{товар}Название самого дорогого товара в корзине
{сумма}Сумма корзины с валютой, например «4 970 ₽»
{количество}Сколько всего штук в корзине

Пример: «🛒 {товар} ждёт в корзине — ответить на вопросы перед заказом?». Если корзина пуста, подсказка с токеном не показывается вовсе: посетитель никогда не увидит пустое место или фигурные скобки. Если посетитель положит товар в корзину позже, на той же странице, подсказка появится.

Рабочие сценарии для брошенной корзины:

  • Уходит с непустой корзиной: тип «Курсор уходит со страницы» (на телефоне срабатывает при прокрутке вверх), условие «Есть товары». Его нужно добавить вручную: в готовый набор для интернет-магазинов он не входит, потому что корзина по умолчанию выключена.
  • Вернулся, а в корзине товары: тип «При повторном визите», условие «Есть товары», текст вроде «С возвращением! {товар} ещё в корзине — помочь с заказом?».
  • Крупная корзина: «Сумма корзины от 10 000» и предложение бесплатной доставки или консультации.

«Сумма корзины от» считается в основной валюте магазина. Если магазин на Shopify продаёт в нескольких валютах, сумма пересчитывается по курсу самого Shopify. Другие валюты мы не пересчитываем.

1С-Битрикс

Способ 1: Яндекс Метрика (без программиста). Если на сайте стоит Метрика с включённой электронной коммерцией, виджет сам видит товары, которые посетитель добавляет в корзину. Включается так:

  1. В настройках счётчика Метрики включите «Электронная коммерция».
  2. Установите официальный модуль «Яндекс Метрика» из Маркетплейса 1С-Битрикс или включите в компонентах каталога и корзины параметр «Включить отправку данных в электронную торговлю».

Способ 2: сниппет (видна вся корзина). Разработчик добавляет этот код в footer.php шаблона сайта, после кода установки виджета:

<?php
use Bitrix\Main\Context;
use Bitrix\Main\Loader;
use Bitrix\Sale;

if (Loader::includeModule('sale')) {
    $basket = Sale\Basket::loadItemsForFUser(Sale\Fuser::getId(), Context::getCurrent()->getSite());
    $items = [];
    $currency = null;
    foreach ($basket->getOrderableItems() as $item) {
        $currency = $currency ?: $item->getCurrency();
        $items[] = [
            'name' => $item->getField('NAME'),
            'quantity' => (float) $item->getQuantity(),
            'price' => (float) $item->getPrice(),
            'line_total' => (float) $item->getFinalPrice(),
            'url' => $item->getField('DETAIL_PAGE_URL'),
        ];
    }
    $cart = ['items' => $items, 'total' => (float) $basket->getPrice(), 'currency' => $currency];
    ?>
    <script>
    window.Chatbot = window.Chatbot || function () { (window.Chatbot.q = window.Chatbot.q || []).push(arguments); };
    Chatbot('setCart', <?= json_encode($cart, JSON_UNESCAPED_UNICODE | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT) ?>);
    </script>
    <?php
}

⚠️ Если на сайте включён «Композитный сайт» или другое кэширование страниц целиком, этот код нужно вывести в динамической (некэшируемой) области. Иначе страница с корзиной одного посетителя может попасть в кэш и показаться другим. Если сделать это сложно, используйте способ 1.

Любой сайт: одна строка кода

Если платформы нет в списке выше или нужна точная корзина, сайт может сам передать её виджету. Вызовите Chatbot('setCart', …) при загрузке страницы и после каждого изменения корзины:

Chatbot('setCart', {
  items: [
    { name: 'Свитер оверсайз', variant: 'серый / M', quantity: 2, price: 2490, sku: 'SW-01', url: '/products/sweater' }
  ],
  total: 4980,
  currency: 'RUB'
});

Когда корзина опустела: Chatbot('setCart', null).

  • Обязательны только name и quantity, остальные поля по желанию. Цены указывайте в обычных единицах (рублях, долларах), не в копейках.
  • Вызов можно делать до загрузки виджета: код установки собирает такие вызовы в очередь.
  • На странице, где вызван setCart, переданная корзина важнее автоматического чтения. На самописном сайте она запоминается и для следующих страниц. На Shopify, WooCommerce и Tilda страница без вызова показывает живую корзину платформы — поэтому, если используете setCart там, вызывайте его на каждой странице.

Какие данные передаются

Виджет передаёт агенту только товары: название, вариант, количество, цены, артикул и ссылку на товар на вашем же сайте. Имя, телефон, email и адрес покупателя, промокоды, комментарии к заказу и любые другие поля корзины не передаются, даже если они там есть. Ссылки и артикулы нужны только для сверки с каталогом, сам агент их не видит.

Агенту корзина передаётся вместе с каждым сообщением. В «Диалогах» её отдельно не видно, но она сохраняется вместе с сообщением посетителя.

Как проверить

  1. Откройте свой сайт в окне инкогнито и положите товар в корзину.
  2. Откройте чат и спросите: «Что у меня в корзине?» или «Сколько будет доставка?». Агент должен назвать ваш товар.
  3. Чтобы проверить триггер, создайте подсказку с токеном {товар} и условием «Есть товары», а затем попробуйте уйти со страницы с непустой корзиной.

Если агент не видит корзину:

  • проверьте переключатель в Настройки агента → Общие;
  • для Битрикса и сайтов без поддержки «из коробки» нужен один из способов выше;
  • корзина в Tilda должна быть на сайте стандартная (блок корзины Tilda).

Что дальше