Выдано 115400 лицензий

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

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

Подключение 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 / Электронная коммерция

Не нашли ответ на свой вопрос в документации? Направьте обращение в или онлайн чат.

Комментарии

  • Пора обновляться: устаревший ecommerce-код скоро прекратит работу

    Из блога Яндекс.Метрики, сегодня, 15:46
    Мы прекращаем поддержку устаревшего способа передачи ecommerce-данных, в котором использовался предопределённый набор параметров визитов. Если вы используете этот способ и хотите, чтобы статистика продолжила поступать в отчёты, вам нужно до 27 марта обновить код для передачи ecommerce-данных.
    Обратите внимание: 13 и 20 марта запланировано профилактическое отключение устаревшего метода передачи данных — в эти дни устаревший код не будет передавать данные в отчёты — а с 27 марта он полностью прекратит работу.

    27.02.2018 22:21:42 tnlpro

    Без темы

    В блоге Яндекса идет речь о том, что нельзя будет передавать eсommerce-данные через reachGoal. Мы же приводим пример уже с новым кодом, через dataLayer.push

    https://yandex.ru/blog/metrika/pora-obnovlyatsya-ustarevshiy-ecommerce-kod-skoro-prekratit-rabotu/

    02.03.2018 15:47:37 alexander.egorov