Product Guides

Битрикс (Bitrix)

Данная инструкция предназначена для CMS Битрикс версии 17.0 со стандартной темой магазина.

Процесс установки трекинг-кодов для других модификаций, версий и тем может отличаться.

Необходимо скопировать шаблоны компонентов main.include, catalog, catalog.item, catalog.element, sender.subscribe, sale.order.ajax из папки:
/bitrix/components/bitrix/названиекомпонента_/templates/ (там находится стандартный шаблон с названием .default) в папку:
/bitrix/templates/шаблонсайта/components/_namespace/названиекомпонента/названиешаблона (namespace обычно имеет значение bitrix), далее редактировать копии.

Основной трекинг-код системы

Данный трекинг-код необходимо установить так, чтобы он срабатывал на всех страницах сайта.

Создайте в папке вашего шаблона папку js, в ней файл retailrocket.js со следующим содержанием:

<script type="text/javascript"> var rrPartnerId = "PartnerId"; var rrApi = {}; var rrApiOnReady = rrApiOnReady || []; rrApi.addToBasket = rrApi.order = rrApi.categoryView = rrApi.view = rrApi.recomMouseDown = rrApi.recomAddToCart = function() {}; (function(d) { var ref = d.getElementsByTagName('script')[0]; var apiJs, apiJsId = 'rrApi-jssdk'; if (d.getElementById(apiJsId)) return; apiJs = d.createElement('script'); apiJs.id = apiJsId; apiJs.async = true; apiJs.src = "//cdn.retailrocket.ru/content/javascript/tracking.js"; ref.parentNode.insertBefore(apiJs, ref); }(document)); </script>

где "PartnerId" – идентификатор партнера в системе Retail Rocket.

Затем в файл:
/bitrix/templates/шаблонсайта/components/_namespace/main.include/названиешаблона_/template.php

Добавьте следующую строку:

$this->addExternalJS(SITE_TEMPLATE_PATH . "/js/retailrocket.js");
632

Трекинг-код просмотра карточки товара

Данный трекинг-код необходимо установить на страницах всех товаров.

В файл:
/bitrix/templates/шаблонсайта/components/_namespace/catalog.element/названиешаблона_/template.php

Вставьте код:

<?php print '<script type="text/javascript"> (window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() { '; $resOffers = CCatalogSKU::getOffersList($arResult["ID"]); if ($resOffers[$arResult["ID"]]) { foreach ($resOffers[$arResult["ID"]] as $arItem) { $skus[] = $arItem["ID"]; } $skuList = implode(",", $skus); print 'try{ rrApi.groupView([' . $skuList . ']); } catch(e) {}'; } else { print 'try{ rrApi.view(' . $arResult["ID"] . '); } catch(e) {}'; } print ' }) </script>'; ?>

Где:

  • $arResult["ID"] - ID товара (должен совпадать с ID, передаваемом в YML).
  • $skuList - строка, содержащая ID торговых предложений (нужно только в случае, если на сайте используются "торговые предложения", и только, если Вы хотите учитывать их в YML как отдельные товары, каждый со своим ID)

Пример:

818

При наличии быстрого просмотра перейдите по пути templates/views/products и откройте файл quick_view.tpl

В данном файле после открывающего тега <div> поместите данный код:

<script type="text/javascript"> rrApiOnReady.push(function() { try{ rrApi.view({$product.product_id}); } catch(e) {} }) </script>

Пример:

828

📘

Примечание

Если на сайте реализованы всплывающие окна для быстрого просмотра товара, то трекинг-код rrApi.view() необходимо дополнительно установить в шаблон для этого окна.

Трекинг-код просмотра товарной категории

Данный трекинг-код необходимо установить на всех страницах товарных категорий и подкатегорий.

В файл:
/bitrix/templates/шаблонсайта/components/_namespace/catalog/названиешаблона_/section.php

Вставьте код:

<script type="text/javascript"> <?php $arResult['SECTION_ID'] = CIBlockFindTools::GetSectionID( $arResult['VARIABLES']['SECTION_ID'], $arResult['VARIABLES']['SECTION_CODE'], array('IBLOCK_ID' => $arParams['IBLOCK_ID']) ); ?> (window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() { try { rrApi.categoryView(<?=$arResult['SECTION_ID']?>); } catch(e) {} }) </script>

Где:
<?=$arResult['SECTION_ID']?> - числовой ID товарной категории (должен совпадать с атрибутом id тега <category>, передаваемом в YML-файле).

Пример:

1625

Трекинг-код добавления товаров в корзину

Для каждого товара, на кнопках добавления товаров в корзину необходимо установить трекер добавления в корзину.

В 2 файла:
/bitrix/templates/шаблонсайта/components/_namespace/catalog.item/названиешаблона/script.js
/bitrix/templates/
шаблонсайта/components/namespace/catalog.element/названиешаблона_/script.js

В функции initBasketUrl() внутри условия switch (this.productType) после следующей строки:

case 2: // set

Вставьте строку:

try { rrApi.addToBasket(this.product.id) } catch(e) {};

А после строки:

case 3: // sku

Вставьте строку:

try { rrApi.addToBasket(this.offers[this.offerNum].ID) } catch(e) {};

Пример:

835

Где:

  • this.product.id - ID товара;
  • this.offers[this.offerNum].ID - ID "торгового предложения" (если они используются на сайте).
    ID должны совпадать с ID, передаваемыми в YML;

📘

Примечание

Если на сайте реализованы всплывающие окна для быстрого просмотра товаров, в которых есть кнопка для добавления в корзину, то трекинг-код rrApi.addToBasket() необходимо дополнительно установить на кнопку в шаблоне для этого окна.

Трекинг-код совершения транзакции

На финальной странице оформления заказа (на которой пользователю сообщают о том, что заказ сформирован, благодарят за покупку) необходимо установить трекинг-код совершения транзакции.

В файл:
/bitrix/templates/шаблонсайта/components/_namespace/sale.order.ajax/названиешаблона_/template.php

Вставьте код:

if($arResult['ORDER_ID']){ $transactionIdVal = $arResult['ORDER_ID']; print " <script type='text/javascript'> rrApiOnReady.push(function() { try { rrApi.order({ transaction: $transactionIdVal, items: [ "; $res = CSaleBasket::GetList(array(), array("ORDER_ID" => $arResult['ORDER_ID'])); while ($arItem = $res->Fetch()) { $mxResult = CCatalogSku::GetProductInfo($arItem['PRODUCT_ID']); $productIdVal = $mxResult['ID']; $qntIdVal = $arItem['QUANTITY']; $priceIdVal = $arItem['PRICE']; print "{ id: $productIdVal, qnt: $qntIdVal, price: $priceIdVal},"; } print " ] }); } catch(e) {} }) </script> "; }

Пример:

753

Где:

  • $arResult['ORDER_ID'] - ID транзакции;
  • $mxResult['ID'] - ID товара (должен совпадать с ID, передаваемом в YML);
  • $arItem['QUANTITY'] - количество единиц товара в заказе;
  • $arItem['PRICE'] - цена за единицу товара;

Приведён код для сайта, использующего "торговые предложения".

📘

Примечание

Усли на сайте реализована форма “быстрого” заказа или заказа “в 1 клик”, то трекер rrApi.order() необходимо дополнительно вызывать при совершении заказов через данную форму.

Трекер сбора email

Каждый раз, когда вы получаете email пользователя, исполняйте код:

(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() { rrApi.setEmail("<user_email>"); });

Где **<user_email>** - email адрес пользователя.

Для установки трекинг-кода email при оформлении заказа:

Создайте в папке вашего шаблона в папке js файл rrSetEmailOrder.js со следующим содержанием:

document.addEventListener("DOMContentLoaded", function(event) { var mailField = document.querySelector('[autocomplete="email"]'); mailField.addEventListener("blur", function(){ try {rrApi.setEmail(mailField.value);}catch(e){} }); });

Затем в файл

/bitrix/templates/шаблонсайта/components/_namespace/sale.order.ajax/названиешаблона_/template.php

Добавьте строку:

$this->addExternalJS(SITE_TEMPLATE_PATH . "/js/rrSetEmailOrder.js");
745

Для установки трекинг-кода email в форме подписки:

В файл:
/bitrix/templates/шаблонсайта/components/_namespace/sender.subscribe/названиешаблона_/template.php

Вставьте код:

onblur="try {rrApi.setEmail(this.value);}catch(e){}"

Как атрибут у 2х полей **, у которых имеется атрибут type="email"**

1806

🚧

Важно

Передавайте e-mail только тех пользователей, кто явно разрешил отправлять им письма.


Did this page help you?