БесплатноБесплатный аудит сайта и кода на 1С-Битрикс при заказе доработки или поддержки

Отслеживание добавлений в корзину и оформлений

Отслеживание добавлений в корзину и оформлений заказа в магазине на 1С-Битрикс через dataLayer и события

«Заказов стало меньше» — а где именно вы их теряете? В карточке, в корзине, на доставке или на оплате? Если вы считаете только сами заказы, ответа нет: вы видите результат, но не место утечки. Чтобы чинить конверсию точечно, нужно отслеживать всю воронку — каждое добавление в корзину и каждый шаг оформления, а не только финал.

В этой статье разберём, как настроить корректное отслеживание добавлений в корзину и оформлений в магазине на 1С-Битрикс: что такое dataLayer, какие события ловить, где брать данные из модуля «Интернет-магазин» и события `sale.order`, зачем нужны серверные события и дедупликация. Навести порядок в этих механизмах помогает аудит и оптимизация 1С.

Коротко

  • Считать только заказы недостаточно — нужна вся воронка, чтобы видеть, где теряются покупатели.
  • Стандартный способ — dataLayer: сайт складывает события в единый слой, аналитика читает их через тег-менеджер.
  • Данные берите из штатных механизмов Битрикса: корзина (Sale\Basket), заказ (Sale\Order), каталог — а не из DOM.
  • Ключевое событие покупки дублируйте серверно и дедуплицируйте по id заказа, чтобы не потерять и не задвоить.

Почему заказ — не первое, что надо считать

Заказ — это конец пути, и по нему одному невозможно понять, что происходит по дороге. Представьте: заказов стало на треть меньше. Причина может быть где угодно — упал трафик, сломалась кнопка «в корзину», выросла стоимость доставки, отвалилась оплата. Одна цифра заказов не различает эти сценарии, а значит, не подсказывает, что чинить.

Поэтому отслеживание строят не от заказа, а от воронки. Нужно видеть каждый шаг: сколько посмотрели товар, сколько добавили в корзину, сколько начали оформление, сколько дошли до оплаты. Тогда падение локализуется: «добавлений столько же, но оформлений вдвое меньше — проблема в корзине или доставке». Это превращает аналитику из констатации в инструмент.

Воронка e-commerce по шагам

Стандартная воронка интернет-магазина — это последовательность событий, между которыми теряются покупатели:

ШагСобытиеО чём говорит потеря
1Просмотр товараПроблема с трафиком или релевантностью
2Добавление в корзинуКарточка, цена, наличие не убеждают
3Начало оформленияКорзина, доставка, стоимость отпугивают
4Ввод данных и доставкиФорма сложная, мало способов доставки
5Оплата (покупка)Проблемы с оплатой или доверием

Каждый переход между шагами — это конверсия, которую можно измерить и улучшать. Смысл трекинга в том, чтобы каждый из этих шагов стал событием с данными, и вы видели не только «сколько заказов», но и «сколько отвалилось на переходе 3→4 и почему».

Оформление заказа по шагам КорзинатоварыДанныеконтактыДоставкаспособ, адресОплатаспособ оплатыСпасибозаказ созданЧем короче и понятнее шаги оформления, тем меньше брошенных корзин.
Схема: Чем короче и понятнее шаги оформления, тем меньше брошенных корзин.

dataLayer как единый слой данных

Технически связать сайт и системы аналитики удобнее всего через dataLayer — промежуточный слой данных на странице. Это JavaScript-массив, куда сайт складывает события и их параметры в едином формате, а тег-менеджер читает их оттуда и передаёт в нужные системы аналитики.

Зачем эта прослойка:

Ключевой принцип: сайт отвечает за то, чтобы в dataLayer попали правильные события с точными данными о товарах и заказе. Всё остальное — настройка передачи — делается поверх, без вмешательства в код магазина.

Какие события отслеживать

Базовый набор e-commerce событий, которого достаточно для полноценной воронки:

Каждое событие несёт параметры: id товара, артикул, название, цену, категорию, количество, а для покупки — состав заказа и сумму. Именно точность этих параметров определяет ценность аналитики: без корректных данных о товарах воронка есть, а понять, что и почём покупают, нельзя.

Где брать данные в 1С-Битрикс

Главная ошибка трекинга — парсить данные из HTML-разметки (DOM). Это хрупко: поменялась вёрстка — сломался трекинг, а цены и id легко считать неверно. Правильный источник — штатные механизмы модуля «Интернет-магазин»:

Привязка трекинга к серверным сущностям Битрикса даёт точные данные, совпадающие с реальным заказом. Работать с этими объектами чисто и производительно помогает современный слой доступа — принципы мы разбираем в статье про D7 ORM в Битрикс.

Событие добавления в корзину

Добавление в корзину — самый частый и важный промежуточный сигнал. Оно происходит из разных мест: карточки, списка товаров, блока рекомендаций, быстрого просмотра. Задача — ловить его везде и с одинаковыми данными.

Что учесть при настройке события добавления:

  1. Все точки добавления. Карточка, каталог, рекомендации, быстрый заказ — событие срабатывает из каждой.
  2. Правильный товар. Для товара с вариантами передаётся именно выбранный SKU (размер, цвет), а не родитель.
  3. Актуальная цена. Цена в событии — та, что видит покупатель, включая цену его группы в B2B.
  4. Количество. Если добавили несколько штук — количество попадает в событие.

Отдельное внимание — асинхронному добавлению без перезагрузки (AJAX). Событие должно уходить именно в момент успешного добавления в корзину на сервере, а не при клике по кнопке: иначе вы посчитаете и неудачные попытки. Привязка к ответу сервера делает событие достоверным.

События оформления по шагам

Оформление заказа — самая «протекающая» часть воронки, и её надо разложить на шаги. В 1С-Битрикс оформление может быть одностраничным или пошаговым, но логически всегда есть этапы: старт оформления, ввод контактов, выбор доставки, выбор оплаты, подтверждение.

Отслеживание каждого шага показывает, где именно покупатель бросает заказ. Много начавших оформление, но мало выбравших доставку — проблема в способах или стоимости доставки. Много выбравших доставку, но мало дошедших до оплаты — сложная форма или недоверие к оплате. Без разбивки на шаги вы видите только «начал — не купил», без понимания причины. Эти же данные о поведении в оформлении питают и персонализацию — как её выстроить, мы разбираем в статье про гиперперсонализацию витрины.

Событие покупки и sale.order

Покупка — главное событие, ради которого существует вся воронка, и к нему требования строже всего. Ловить его надо в момент реального создания заказа, а данные брать из объекта заказа (Sale\Order), а не со страницы «спасибо».

Правильно привязать событие покупки к серверным событиям модуля продаж — обработчикам создания заказа. Тогда в событие попадают достоверные данные: id заказа, полный состав, суммы, примённые скидки. Это надёжнее, чем полагаться на JavaScript на странице успеха, которую пользователь может перезагрузить, закрыть до отработки скрипта или не увидеть из-за блокировщика. Как аккуратно работать с серверными событиями и внешними системами, мы описали в материале про REST, вебхуки и безопасность в Битрикс.

Одно событие на заказ: покупка должна фиксироваться ровно один раз. Перезагрузка страницы «спасибо за заказ» не должна создавать повторное событие — иначе выручка в аналитике задваивается. Привязка к факту создания заказа и дедупликация по id решают это.

Серверные события и дедупликация

Клиентские события (в браузере) неизбежно теряются: блокировщики, отключённый JavaScript, сбои сети, ограничения браузеров. Для промежуточных шагов это терпимо, но для покупки — нет: терять данные о выручке недопустимо. Поэтому ключевое событие покупки дублируют серверно.

Серверное событие отправляется с вашего сервера напрямую в аналитику при создании заказа — его не блокирует браузер. Но если слать покупку и с клиента, и с сервера, возникает риск задвоения. Решает его дедупликация:

Такой гибрид клиент + сервер с дедупликацией — современный стандарт для достоверного учёта покупок. Он совмещает полноту поведенческих данных с надёжностью серверного подтверждения выручки.

Кэш, композит и скорость

Трекинг не должен замедлять сайт и не должен ломаться на кэшированных страницах. Два технических момента, которые важно проверить:

Композитный сайт и кэш ускоряют магазин, но добавляют нюанс: динамическая часть страницы, откуда берутся данные для событий, приходит отдельно. Убедитесь, что трекинг корректно срабатывает и на статике из кэша, и на догружаемой динамике, иначе часть событий потеряется незаметно.

Частые ошибки трекинга

Чек-лист внедрения

  1. Воронка определена. Выбраны шаги от просмотра товара до оплаты, каждый станет событием.
  2. dataLayer внедрён. Сайт складывает события с точными данными о товарах в единый слой.
  3. Данные из Битрикса. Источник — корзина, заказ и каталог модуля «Интернет-магазин», а не DOM.
  4. Добавление корректно. Событие ловится из всех точек, с нужным SKU, ценой и по факту успеха.
  5. Шаги оформления считаются. Старт, доставка, оплата разложены на события воронки.
  6. Покупка надёжна. Событие привязано к созданию заказа (sale.order), дублируется серверно, дедуплицируется по id.
  7. Скорость и кэш проверены. Трекинг асинхронный, работает на композитных страницах, без дублей.
  8. Сверка с 1С-Битрикс. Число покупок в аналитике совпадает с числом заказов за период.

Вывод

Отслеживание добавлений в корзину и оформлений — это не про «поставить счётчик», а про то, чтобы видеть всю воронку и точно знать, где теряются покупатели. Считать только заказы — значит видеть результат без причины. Разложите путь на события: просмотр, добавление, шаги оформления, покупка — и падения станут локализуемыми, а улучшения точечными.

Технически это dataLayer как единый слой данных, события из штатных механизмов 1С-Битрикс (корзина, заказ, каталог), а не из вёрстки, и надёжная фиксация покупки: серверное подтверждение через события sale.order с дедупликацией по id заказа. Проверьте работу на кэше и сверьте покупки с заказами в 1С — и ваша аналитика превратится из красивых графиков в инструмент, который реально помогает растить конверсию.

Частые вопросы

Зачем отдельно отслеживать добавления в корзину, если есть счётчик заказов?

Заказ — это лишь конец воронки. Чтобы понять, где вы теряете покупателей, нужно видеть все шаги: просмотр товара, добавление в корзину, начало оформления, оплата. Если много добавлений, но мало оформлений — проблема в корзине или доставке; если много начатых оформлений, но мало оплат — в форме заказа или оплате. Без пошагового отслеживания вы видите только результат, но не причину потерь.

Что такое dataLayer и зачем он нужен?

dataLayer — это промежуточный слой данных на странице (JavaScript-массив), куда сайт складывает события и их параметры в едином формате, а системы аналитики их оттуда читают через тег-менеджер. Он развязывает магазин и аналитику: разработчик один раз выводит корректные события с данными о товарах, а маркетолог настраивает передачу в нужные системы без правок кода сайта. Это стандартный способ e-commerce трекинга.

Где в 1С-Битрикс брать данные о товарах и заказе для событий?

Из штатных механизмов модуля «Интернет-магазин»: корзина (Sale\Basket), заказ (Sale\Order), торговый каталог. Данные о товаре (id, артикул, название, цена, категория) берутся при выводе каталога и карточки, о заказе — при его создании через события модуля продаж. Правильно — привязывать трекинг к этим серверным сущностям, а не парсить DOM, тогда данные точны и совпадают с реальным заказом.

Чем серверное отслеживание лучше клиентского?

Клиентские события (в браузере) теряются из-за блокировщиков, отключённого JavaScript, сбоев сети и ограничений браузеров. Серверные события отправляются с вашего сервера напрямую в аналитику и потому надёжнее, особенно для ключевого события — покупки. Лучшая практика — гибрид: клиентские события для поведения на сайте и серверное подтверждение покупки, с дедупликацией, чтобы заказ не считался дважды.

Как не посчитать один заказ дважды?

Нужна дедупликация по идентификатору заказа. Каждому заказу присваивается уникальный id, и он передаётся и в клиентском, и в серверном событии покупки. Аналитика по этому id понимает, что это одно и то же событие, и не считает его дважды. Также важно не срабатывать на перезагрузку страницы «спасибо за заказ»: событие покупки должно отправляться один раз на заказ, а не при каждом заходе на страницу успеха.

Какие именно события стоит отслеживать в магазине?

Базовый набор e-commerce: просмотр товара, добавление в корзину, удаление из корзины, просмотр корзины, начало оформления, ввод контактов/доставки/оплаты как шаги, и покупка с составом заказа и суммой. Этого достаточно, чтобы построить воронку и увидеть, на каком шаге теряются покупатели. Дополнительно полезны события клика по промо, применения промокода и просмотра списка товаров.

Влияет ли отслеживание на скорость сайта?

Может, если грузить много тяжёлых скриптов синхронно. Правильно — подключать тег-менеджер и трекинг асинхронно, не блокируя отрисовку, и не дублировать одинаковые пиксели. На композитном сайте важно, чтобы события корректно срабатывали и на закэшированных страницах: динамические данные (id товара, сумма) должны попадать в dataLayer даже когда страница отдаётся из кэша. Это надо проверять отдельно.

Как проверить, что отслеживание работает правильно?

Прогоните реальный сценарий: посмотрите товар, добавьте в корзину, оформите тестовый заказ — и проверьте, что каждое событие ушло с верными данными (id, цена, состав, сумма). Используйте режим отладки тег-менеджера и отчёты аналитики в реальном времени. Сверьте число покупок в аналитике с числом заказов в 1С-Битрикс за период: расхождение сигнализирует о потерянных или задвоенных событиях.

Поделиться:

Хотите видеть, где теряются покупатели?

Настроим сквозное отслеживание воронки: dataLayer, события корзины и оформления, серверное подтверждение покупки на вашем магазине 1С-Битрикс.

Игорь Воскресенский

Команда B2Bsite. С 2014 года разрабатываем интернет-магазины на 1С-Битрикс: сквозная аналитика, события корзины и оформления, серверный трекинг покупок и обмен с 1С.

← Все статьи блога