1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

[Помощь] Настройка VirtueMart для целей Яндекс.Директа

Тема в разделе "Virtuemart", создана пользователем xenongattz, 7 дек 2013.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
  1. xenongattz

    xenongattz Создатель

    Регистр.:
    5 дек 2013
    Сообщения:
    5
    Симпатии:
    0
    Всем привет!

    Работаю на связке Joomla 2.5.14 + VirtueMart 2.0.18a.

    Столкнулся с препятствием..
    Задача состоит в том, чтобы настроить цели в Яндекс.Директе.

    Имеется 3 цели, которые необходимо создать в Я.Д:
    1) Клиент нажал кнопку "В козину";
    2) Клиент нажал кнопку "Оформить заказ";
    3) Клиент нажал кнопку "Заказать обратный звонок".

    Основная соль состоит в том, что нужно добавить уникальный параметр к целевой странице.
    С этим сложности и возникли.

    По-порядку, логика моих рассуждений:
    =============
    1) Кнопка "В корзину" расположена в карточке товара. Вот код формы, в которой находится эта кнопка (файл/components/com_virtuemart/views/productdetails/tmpl/default_addtocart.php:(

    Код:
    <form method="post" class="product js-recalculate" action="<?php echo JRoute::_ ('index.php'); ?>[b]?ya_do=addtocart[/b]">
            // код перед.....
            <span class="addtocart-button">
                <?php echo shopFunctionsF::getAddToCartButton ($this->product->orderable);
                // в сгенерированном HTML-коде это выглядит так:
                // <input type="submit" name="addtocart" class="addtocart-button" value="В корзину" title="В корзину">?>
            </span>
            // код после.....
    </form>
    То есть мы имеем кнопку Submit, при нажатии на которую выполняется действие action="...".
    Идея была в том, что при нажатии на нее, к ссылке в адресной строке добавлялась бы строка "ya_do=addtocart" (в коде выше выделена жирным шрифтом), которая бы идентифицировала нажатие на эту кнопку для Яндекс.Директа.

    Однако, на практике получается, что на сайте включен стандартный джумловский SEF и, соответственно параметр не добавляется.
    Более того, когда я отключил SEF, чтобы проверить работает ли без него, то понял, что не работает: по умолчанию, при нажатии на кнопку "Добавить в корзину" выводится всплывающее окно, где можно увидеть добавленный товар и выбрать - либо "Перейти в корзину", либо "Продолжить покупки", а вид ссылки при этом не изменяется.
    =============
    2) Далее, нажатие на кнопку "Оформить заказ", которое происходит в корзине.
    Соответственно, открываю "Инспектор кода" в браузере и нахожу строки:

    Код:
    <div class="checkout-button-top">
        <a class="vm-button-correct" onclick="validForm();">Заказать доставку</a>
    </div>
    Это наша целевая кнопка, нажатие на которую необходимо отслеживать.

    Далее, открываем /components/com_virtuemart/views/cart/tmpl/default.php и находим нужные строки:

    Код:
    <form method="post" id="checkoutForm" name="checkoutForm" >
        // код перед.....
        <?php echo '<a class="vm-button-correct"  onclick="validForm();">Заказать доставку</a>';//$this->checkout_link_html;?>
        // код после.....
    </form>
    Тут мы имеем уже JS-скрипт, который обрабатывает нажатие.
    Его код находится в файле /components/com_virtuemart/views/cart/tmpl/default_pricelist.php

    Тогда модификацию ссылки нужно производить в этом скрипте, по логике вещей..
    =============
    3) Еще одна кнопка, нажатие на которую нужно отследить, вставлена в модуль и материал. Имеет такой код:

    Код:
    <div class="ask-a-question">
    <a  class="modalZakaz" >Заказать обратный звонок</a>
    <!--<a class="ask-a-question modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="<?php echo $this->askquestion_url ?>"><?php echo JText::_('Заказать обратный звонок')?></a>-->
    </div>
    Когда нажимаем на эту кнопку, то появляется модальное окно, где вбиваем все данные, однако нажатие в этом окне на кнопку "Отправить" (там как и в случае 1, используется <form> с <input type="button">), также не меняет ссылку в адресной строке.
    =============
    Из сих измышлений и задач, вытекает вопрос: как добиться от Joomla добавление уникального параметра в состав адресной строки с включенным SEF?

    Мои знания PHP и JS не позволяют разобраться как решить эти задачи, поэтому буду благодарен за помощь!
     
  2. mvc.28.06.09

    mvc.28.06.09 Создатель

    Регистр.:
    7 дек 2013
    Сообщения:
    20
    Симпатии:
    4
    Для целей Google analytics я дописывал в кнопку оформления заказа
    Код:
    onclick="_gaq.push(['_trackEvent', 'tovari', 'buyme']);"
    В общем получилось следующее:
    Код:
    <input type="button" onclick="_gaq.push(['_trackEvent', 'tovari', 'buyme']);" class="b1c-submit" value="Оформить заказ">
    С этой инструкции http://help.yandex.ru/metrika/qanda/goals-qanda.xml следует, что Вам нужно дописать в вашу кнопку следующее:
    Код:
    onclick="yaCounterCOUNTER_ID.reachGoal('TARGET_NAME'); return true;">
     
    Последнее редактирование модератором: 11 дек 2013
    xenongattz нравится это.
  3. xenongattz

    xenongattz Создатель

    Регистр.:
    5 дек 2013
    Сообщения:
    5
    Симпатии:
    0
    Спасибо за подсказку в каком направлении двигаться! Настроил цели, ожидаю обновления статистики. Она я так понимаю не сразу обновляется?
     
  4. mvc.28.06.09

    mvc.28.06.09 Создатель

    Регистр.:
    7 дек 2013
    Сообщения:
    20
    Симпатии:
    4
    Обновление статистики целей может занять до 2 дней, хотя у меня на следующий день уже все клики показало.
     
  5. Legostaev

    Legostaev Создатель

    Регистр.:
    28 мар 2016
    Сообщения:
    15
    Симпатии:
    2
    друзья, помогите пожалуйста с аналитиксом.

    Итак стоит VM 3.0.16 совместно с One Page Generic. Необходимо определять цель при нажатии кнопки подтверждения заказа
    изменяю файл по адресу /httpdocs/plugins/system/onepage_generic/cart/tmpl/default_shopper.php

    Код:
    echo '<a class="opg-button '.$button_primary_class.' opg-button-large opg-margin-top opg-width-1-1" href="javascript:void(0);" onclick="submit_order(); yaCounter474747474.reachGoal(\'ORDER\'); return true;"><span>' . JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU') . '</span></a>';
    в таком состоянии метрика работает как надо.

    добавляю код для аналитикса
    Код:
    ga('send', 'event', 'pokupka', 'submitorder');
    Код:
    echo '<a class="opg-button '.$button_primary_class.' opg-button-large opg-margin-top opg-width-1-1" href="javascript:void(0);" onclick="submit_order(); yaCounter474747474.reachGoal(\'ORDER\'); return true; ga('send', 'event', 'pokupka', 'submitorder');"><span>' . JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU') . '</span></a>';
    и страница корзины перестает работать корректно. - грузится наполовину без стилей и тп...

    пробовал ставить код для аналитикса в разные места в кавычках полсле onclick=" - результат один.

    что делаю не так? подскажите пожалуйста.

    заранее спасибо за ответ!
     
    Последнее редактирование: 20 сен 2016