Электронная коммерция
Яндекс. Электронная коммерция. Внедряем 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: {…}}