Блог

Электронная коммерция

Электронная коммерция

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

Иван

Иван

February 5, 2020

Просмотры: 1199