
Яндекс. Электронная коммерция. Внедряем e-commerce в магазине Shop-Script
1. Перед счетчиком Яндекс.Метрика вызываем переменную dataLayer через JavaScript. Обязательно в коде счетчика должно быть наличие строки ecommerce:«dataLayer» (или ecommerce:true)
<script>
window.dataLayer = window.dataLayer || [];
</script>
2. В карточке товара добавляем отслеживание на отправку товара в корзину. В шаблоне product.html размещаем:
{* Получаем список названий категорий товара, исключаем скрытые *}
{foreach $product.categories as $c}
{if !$c.status}{continue}{/if}
{$_categories[] = $c.name}
{/foreach}
<script>
/* Добавление товара в корзину */
$('#cart-form').on('submit', function (event) {
dataLayer.push({
'ecommerce' : {
"currencyCode": "RUB",
'add' : {
'products' : [
{
'name' : '{$product.name}',
'id' : '{$product.id}',
'brand' : '{$product.features.brand}',
'price' : {$product.price},
'category' : '{if count($product.categories) > 0}{', '|implode:$_categories}{/if}'
}]
}
}
});
});
/* Просмотр полного описания товара */
dataLayer.push({
'ecommerce' : {
'currencyCode': 'RUB',
'detail' : {
'products' : [
{
'name' : '{$product.name|escape}',
'id' : '{$product.id}',
'price' : {$product.price},
'brand' : '{$product.features.brand}',
'category' : '{if count($product.categories) > 0}{', '|implode:$_categories}{/if}'
}
]
}
}
});
</script>
3. Отправляем содержимое успешного заказа в e-commerce. В шаблоне checkout.success.html размещаем:
{* Покупка *}
<script>
dataLayer.push({
'ecommerce' : {
'purchase' : {
'actionField': {
'id' : '{$order.id}',
'revenue' : '{$order.total}'
'shipping' : '{$order.shipping}'
},
'products' : [
{foreach $order.items as $item key=i}
{$p = $wa->shop->product($item.product_id)}
{
'id' : '{$item.id}',
'name' : '{$item.name|default:" "}',
'price' : {$item.price},
'quantity' : {$item.quantity},
'brand' : '{$p.features.brand}'
}{if $i+1 < $order.items|@count},{/if}
{/foreach}
]}
}
});
</script>
Проверить передаваемые данные на странице сайта можно с помощью get-запроса. Добавив к адресу параметр _ym_debug=1. Например:
https://site.ru/product/?_ym_debug=1
Далее смотрим в консоли браузера строку, вида Params. Counter XXXXXX. Params: {__ym: {…}}
