Выдана 108931 лицензия

Отслеживание продаж в Яндекс.Метрике

Владельцы интернет-магазинов могут получать в Яндекс.Метрике детальную информацию о заказах, совершенных на сайте магазина.

Подключение Ecommerce

В разделе Настройка (Код счетчика) включить опцию Отправка в Метрику данных электронной коммерции. При этом в код счетчика будет добавлен контейнер для сбора данных dataLayer (по умолчанию).

Подключение Ecommerce

Установите код счетчика на страницах вашего сайта.

Представление и передача данных в Ecommerce

Чтобы передать данные в виде Ecommerce-объектов сервису Яндекс.Метрики, необходимо поместить их в специальный JavaScript-массив методом push. Такой массив будем называть контейнером данных.

  1. В разделе Настройки перейдите на вкладку Цели.
  2. Нажмите кнопку Добавить цель.
  3. Укажите тип условия JavaScript-событие, которое позволяет указать событие на сайте, которое является индикатором эффективности работы сайта.
  4. Установите Идентификатор цели в ORDER
  5. Нажмите кнопку Добавить цель. Созданная цель отображается в списке целей.
  6. Нажмите кнопку Сохранить.
  7. В конец файла bootstrap.php добавьте наблюдателя к событию создания заказа Shop_Payment_System_Handler.onAfterProcessOrder и внесите следующий код обработчика события. Не забудьте заменить идентификатор цели (goal_id) в коде обработчика:
    // Цели Яндекс.Метрики при оформлении заказа
    class HostCms_Yandex_Metrika
    {
        static public function onAfterProcessOrder($oShop_Payment_System_Handler)
        {
            $oShop_Order = $oShop_Payment_System_Handler->getShopOrder();
    
            // ЗАМЕНИТЕ ЗНАЧЕНИЕ goal_id НА ИДЕНТИФИКАТОР ВАШЕЙ ЦЕЛИ ORDER
            // Код метрики должен быть выше блока оформления заказа
            ?>
            <script type="text/javascript">
            // $(window).load(function(){
                try {
    				window.dataLayer = window.dataLayer || [];
    				
    				dataLayer.push({
    					"ecommerce": {
    						"currencyCode": "<?php echo htmlspecialchars($oShop_Order->Shop_Currency->code)?>",
    						"purchase": {
    							"actionField": {
    								"id" : "<?php echo htmlspecialchars($oShop_Order->invoice)?>",
    								"goal_id" : "999999999"
    							},
    							"products": [
    							<?php
    								$aShop_Order_Items = $oShop_Order->Shop_Order_Items->findAll(FALSE);
    								foreach ($aShop_Order_Items as $oShop_Order_Item)
    								{
    									?>{
    										name: "<?php echo htmlspecialchars($oShop_Order_Item->name)?>",
    										price: <?php echo htmlspecialchars($oShop_Order_Item->getPrice())?>,
    										quantity: <?php echo htmlspecialchars($oShop_Order_Item->quantity)?>
    									}<?php
    
    									if (each($aShop_Order_Items))
    									{
    										echo "," . PHP_EOL;
    									}
    								}
    							?>
    							]
    						}
    					}
    				});
                } catch(e) { }
            //});
            </script>
            <?php
        }
    }
    Core_Event::attach('Shop_Payment_System_Handler.onAfterProcessOrder', array('HostCms_Yandex_Metrika', 'onAfterProcessOrder'));
    // /Цели Яндекс.Метрики
  8. Проверьте оформление заказа, информация о достижении цели должна появиться в конверсиях.

Справочная информация

  1. Javasript API / Электронная коммерция