JustDavali Posted February 10, 2013 Report Share Posted February 10, 2013 Пару раз в обсуждениях всплывала тема по поводу метрики и ее настройки, а точнее как сделать так что бы метрика считала заказы (суммы и т.д.)Сам код метрики вставляет в index.tpl вот так:{if $module != 'OrderView'} {literal} <script type="text/javascript"> (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter*********= new Ya.Metrika({id:**********, webvisor:true, clickmap:true, trackLinks:true, accurateTrackBounce:true,params:window.yaParams||{ }}); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks"); </script> <noscript><div><img src="//mc.yandex.ru/watch/********" style="position:absolute; left:-9999px;" alt="" /></div></noscript> {/literal} {/if}А затем вот такую конструкцию в файл order.tpl {literal} <!-- Yandex.Metrika counter --> <script type="text/javascript"> var yaParams = { order_id: "{/literal}{$order->id}{literal}", order_price: {/literal}{$order->total_price}{literal}, currency: "RUR", exchange_rate: 1, goods: [ {/literal}{foreach $purchases as $purchase}{literal} { name: "{/literal}{$purchase->product_name|escape}{literal}", price: {/literal}{$purchase->price}{literal}, quantity: {/literal}{$purchase->amount}{literal} } {/literal} {if $purchase@last} {else},{/if} {/foreach}{literal} ] }; </script> <script type="text/javascript"> (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter********* = new Ya.Metrika({id:*********, webvisor:true, clickmap:true, trackLinks:true, accurateTrackBounce:true,params:window.yaParams||{ }}); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks"); </script> <noscript><div><img src="//mc.yandex.ru/watch/***********" style="position:absolute; left:-9999px;" alt="" /></div></noscript> {/literal} **** - это ваш ID счетчика метрикиДля того, что бы все работало надо, что бы у вас были настроены цели - корзина и подтверждение заказаЕсли хотите настроить дополнительные цели, например что бы метрика считала сколько раз посетители нажали на кнопку "в корзину" с главной страницы, то можно сделать так:Добавляет цель в метрике, тип "событие"Идентификатор, например indexADD2CARTЗатем открываем main.tpl находим все места где успомнает кнопка "в корзину" и дописываем у нихonclick="yaCounter*******.reachGoal('mainADD2CART'); return true;"**** - это ваш ID счетчика метрикиПолучается что-то вроде этого:<input type="submit" class="productsMoreBtn" onclick="yaCounter******.reachGoal('mainADD2CART'); return true;" value="Купить" data-result-text="Купить"/>Теперь каждый раз когда вы или пользователь нажмет на главной странице кнопку "в корзину" в метрике будет засчитываться это как достижение цели.Таким же образом можно добавить ввиде целей абсолютно все действия на сайте.Просто нужным элементам добавляем:onclick="yaCounter*******.reachGoal('ID цели'); return true;"ID цели - ваш идентификатор, типа indexADD2CART, indexCREDIT, blogADDCOMMENT, productADDCOMMENT и т.д.p.s. ЕСТЬ КОСЯКИ В МОЕМ РЕШЕНИИ, Я САМ ЭТО ЗНАЮ! ВМЕСТО ТОГО, ЧТО БЫ ПИСАТЬ КАК КРИВО Я ПРЕДЛОЖИЛ СДЕЛАТЬ - ВЫЛОЖИТЕ КАК НАДО СДЕЛАТЬ ПРАВИЛЬНО Quote Link to post Share on other sites
JustDavali Posted February 10, 2013 Author Report Share Posted February 10, 2013 То, что написанно выше стоит на нескольких рабочих сайтах.Поэтому не надо писать, что это не работает - просто подождите немного, метрика не сразу показывает заказы. Quote Link to post Share on other sites
creatonio Posted February 10, 2013 Report Share Posted February 10, 2013 О, спасибо, как раз вчера разбирался. Quote Link to post Share on other sites
nigga Posted February 25, 2013 Report Share Posted February 25, 2013 это ведь для версии 1.4 simpla подойдёт? Quote Link to post Share on other sites
JustDavali Posted February 25, 2013 Author Report Share Posted February 25, 2013 писалось для 2.1.5для 1.4 - хз, я ее не видел ни разу Quote Link to post Share on other sites
bibigontv Posted February 26, 2013 Report Share Posted February 26, 2013 вроде бы сделали всё по инструкции. вот часть кода скрипта, который удалось вытащить из кода страницы где уже заказ оформлен, а в метрики ничё нет!!!!что не так?<script type="text/javascript">var yaParams = { order_id: "858", order_price: 6300 , currency: "RUR", exchange_rate: 1, goods: [ { name: "Полотенцесушитель водяной Energy Classic 600x600 ", price: 5300, quantity: 1 } { name: "Доставка чугунных ванн в пределах МКАД", price: 1000 } ]};</script> Quote Link to post Share on other sites
JustDavali Posted February 26, 2013 Author Report Share Posted February 26, 2013 Доставка чугунных ванн в пределах МКАД - это что?цели настроенны правильно? Quote Link to post Share on other sites
bibigontv Posted February 26, 2013 Report Share Posted February 26, 2013 Доставка чугунных ванн в пределах МКАД - это доставка! а не товар.....цели настроены правильно:1. Цель Корзина содержит «/cart» (корзина) 2. Цель Подтверждение заказа содержит «/order» (заказ) 3. оплата и доставка содержит «/sections/oplata_i_dostavka» 4. Контакты содержит «/sections/contacts» 5. О компании содержит «sections/about» Quote Link to post Share on other sites
JustDavali Posted February 26, 2013 Author Report Share Posted February 26, 2013 в любом случае между} {должна быть запятая, смотрите свой order.tpl и правьте.и должно стоятьquantity: 1 у доставки.и по уму считать доставку как проданный товар неправильно на мой взгляд Quote Link to post Share on other sites
bibigontv Posted February 26, 2013 Report Share Posted February 26, 2013 запятая теперь есть!! а данные когда будут отображаться в метрике??????? тестировал корзину - пока пусто.......... Quote Link to post Share on other sites
JustDavali Posted February 26, 2013 Author Report Share Posted February 26, 2013 если оформить новый заказ через корзину - то 100% в метрике все будет. Quote Link to post Share on other sites
bibigontv Posted February 26, 2013 Report Share Posted February 26, 2013 вот полный код из одного подтвенрждённого заказа в исходном коде!!!!!!!посмотрите что в нём не так!!!!!!!!данных ещё нет!!!!!!<!-- Yandex.Metrika counter --><script type="text/javascript">var yaParams = { order_id: "871", order_price: 3695, currency: "RUR", exchange_rate: 1, goods: [ { name: "название товара1", price: 3695, quantity: 1 } , { name: "название товара2", price: 0, quantity: 1 } ]};</script><script type="text/javascript">(function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter16628108 = new Ya.Metrika({id:16628108, webvisor:true, clickmap:true, trackLinks:true, accurateTrackBounce:true,params:window.yaParams||{ }}); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); }})(document, window, "yandex_metrika_callbacks");</script><noscript><div><img src="//mc.yandex.ru/watch/16628108" style="position:absolute; left:-9999px;" alt="" /></div></noscript><!-- /Yandex.Metrika counter --> Quote Link to post Share on other sites
bibigontv Posted February 27, 2013 Report Share Posted February 27, 2013 а не может быть конфликта что на странице подтверждения заказа две метрики установлены?????? так как одна в индекс файле, другая в ордере, получается в ордере две метрики, так как одна метрика берётся из индекс файла....... Quote Link to post Share on other sites
JustDavali Posted February 27, 2013 Author Report Share Posted February 27, 2013 ну вот вы сами ответили на свой вопрос.почитайте мою инструкцию плиз, там примеры того как надо вставлять коды есть {if $module != 'OrderView'} Quote Link to post Share on other sites
bibigontv Posted February 27, 2013 Report Share Posted February 27, 2013 понЯтно!!!!!!!!! сделал по другому!вставил в индекс это, а в ордер как и положено по инструкции<?php $sv = $_SERVER['REQUEST_URI']; if ($sv == '/order/'.basename($_SERVER['REQUEST_URI'])) { ?><?php } else { ?><!-- Yandex.Metrika counter --><script type="text/javascript">var yaParams = {/*Здесь параметры визита*/};</script><script type="text/javascript">(function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter16628108 = new Ya.Metrika({id:16628108, webvisor:true, clickmap:true, trackLinks:true, accurateTrackBounce:true,params:window.yaParams||{ }}); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); }})(document, window, "yandex_metrika_callbacks");</script><noscript><div><img src="//mc.yandex.ru/watch/16628108" style="position:absolute; left:-9999px;" alt="" /></div></noscript><!-- /Yandex.Metrika counter --><?php } ?> Quote Link to post Share on other sites
bibigontv Posted February 27, 2013 Report Share Posted February 27, 2013 не работает! Quote Link to post Share on other sites
yoshkin Posted February 27, 2013 Report Share Posted February 27, 2013 Все работает, попробуйте отредактировать у себя вот эту часть, с учетом синтаксиса вашей версии симплы Quote Link to post Share on other sites
yoshkin Posted February 27, 2013 Report Share Posted February 27, 2013 <script type="text/javascript">var yaParams = { order_id: "{/literal}{$order->id}{literal}", order_price: {/literal}{$order->total_price}{literal}, currency: "RUR", exchange_rate: 1, goods: [ {/literal}{foreach $purchases as $purchase}{literal} { name: "{/literal}{$purchase->product_name|escape}{literal}", price: {/literal}{$purchase->price}{literal}, quantity: {/literal}{$purchase->amount}{literal} } {/literal} {if $purchase@last} {else},{/if} {/foreach}{literal} ]}; Quote Link to post Share on other sites
bibigontv Posted February 27, 2013 Report Share Posted February 27, 2013 да мне надо исходники, которые надо засовывать в файл, который хранится в папке compiled, а не в папке шаблона!!!!!!! Quote Link to post Share on other sites
yoshkin Posted February 27, 2013 Report Share Posted February 27, 2013 bibigontv, удивляют люди, которым пытаются помочь, а они еще и не довольны. Quote Link to post Share on other sites
bibigontv Posted February 27, 2013 Report Share Posted February 27, 2013 киньте исходник примерного кода, который должен быть в коде подтверждения заказа!!!!!! сверить со своим ....... желательно с примером двух и более товаровА мне надо миллион, скинете? Будьте уважительные к тем кто вам БЕСПЛАТНО помогает. Модератор. Quote Link to post Share on other sites
JustDavali Posted February 27, 2013 Author Report Share Posted February 27, 2013 редактировать надо файлы в папке с шаблоном /design/имя шаблонав компилед ничего засовывать не надо. даже из любопытствав самом первом сообщении все есть для подключения метрики. все описанно как вставлять. не надо ничего выдумывать Quote Link to post Share on other sites
bibigontv Posted February 27, 2013 Report Share Posted February 27, 2013 всё, всем спасибо огромное, всё заработало Quote Link to post Share on other sites
Feache Posted March 4, 2013 Report Share Posted March 4, 2013 Спасибо, все хорошо работает! Quote Link to post Share on other sites
oriolun Posted May 6, 2013 Report Share Posted May 6, 2013 А у меня белый лист, неисписано чист.. И в литерал оборачивал и перед закрытием боди, и после открытия, и кэш чистил, и перезагружал 250 раз. Кто-нибудь сталкивался? Забыл в закрывающем литерал «/» поставить.. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.