Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Настройка динамического ремаркетинга Google на ocStore 2.1.0.2.1


 Поделиться

Рекомендованные сообщения

Добрый вечер! Столкнулся с проблемой настройки динамического ремакертинга на ocStore 2.1.0.2.1, а именно правки кода движка сайта для отправки в гугл нужных данных. В интернете есть решение для 1.5 но два дня поиска, кроме платных модулей ничего не принесли. Предлагаю свое решение:

1) Берем файл footer.tpl из catalog/view/theme/ваша_тема/template/common/

2) Перед тегом </body> (в самом низу кода) вставляем код ремаркетинга гугл, где ХХХХХХ ваш ID, жирным выделил доработку от себя, в остальном код идентичен стандартному

<!--Dynamic Remarketing Tag --//-->
<script type="text/javascript">
var google_tag_params = {
dynx_itemid: '<?php echo $dynx_itemid; ?>',
dynx_pagetype: '<?php echo $dynx_pagetype; ?>',
dynx_totalvalue: '<?php echo $dynx_totalvalue; ?>',
};
</script>

<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = XXXXXXXXXXX;
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/XXXXXXXXX/?guid=ON&amp;script=0"/>
</div>
</noscript>

3) Берем файл footer.php из /catalog/controller/common/

4) После строки         $data['powered'] = sprintf($this->language->get('text_powered'), $this->config->get('config_name'), date('Y', time())); добавляем следующее:

if (! isset ($this->request->get['route'])) {
            $data['dynx_itemid']='';
            $data['dynx_pagetype'] = "home";
            $data['dynx_totalvalue']='';
            $data['product_id'] = '';
            $data['product_id_q'] = '';
            $data['price'] = '';
        } else {
            $data['dynx_totalvalue']='';
            $data['product_id'] = '';
            $data['product_id_q'] = '';
            $data['price'] = '';
            if ($this->request->get['route'] == 'product/category') {
                $data['dynx_pagetype'] = "other";
            } elseif ($this->request->get['route'] == 'product/product'){
                $data['dynx_pagetype'] = "offerdetail";
            } elseif ($this->request->get['route'] == 'checkout/cart'){
                $data['dynx_pagetype'] = "cart";
            } elseif ($this->request->get['route'] == 'search/?search'){
                $data['dynx_pagetype'] = "searchresults";
            } elseif ($this->request->get['route'] == 'checkout/success'){
                $data['dynx_pagetype'] = "purchase";
            } elseif ($this->request->get['route'] == 'checkout/success'){
                $data['dynx_pagetype'] = "conversion";
            } elseif ($this->request->get['route'] == 'checkout/fastorder/fastorder'){
                $data['dynx_pagetype'] = "conversionintent";
            } elseif ($this->request->get['route'] == ''){
                $data['dynx_pagetype'] = "home";
            } elseif ($this->request->get['route'] == ''){
                $data['dynx_pagetype'] = "other";
            } elseif ($this->request->get['route'] == 'common/home'){
                $data['dynx_pagetype'] = "home";
            } else {
                $data['dynx_pagetype'] = "other";
            }

            if (isset($this->request->get['product_id'])) {
                $Id=$this->request->get['product_id'];
                $product_info = $this->model_catalog_product->getProduct($Id );
                $data['product_id'] = $Id;
                If ($product_info['special'] > 0)
                    $data['price'] = $product_info['special'];
                else
                    $data['price'] = $product_info['price'];
            }

            if ($this->request->get['route'] == 'product/product') {
                $data['dynx_itemid'] = $this->request->get['product_id'];
            } else {
                $data['dynx_itemid'] = "";
            }

            if ($this->request->get['route'] == 'product/product') {
                $data['dynx_itemid'] = $data['product_id'];
                $data['dynx_totalvalue'] = $data['price'];
            } elseif ($this->request->get['route'] == 'checkout/cart'){
                $data['dynx_totalvalue'] = round($this->cart->getTotal(),2);
            } elseif ($this->request->get['route'] == 'checkout/fastorder/fastorder'){
                $data['dynx_totalvalue'] = round($this->cart->getTotal(),2);
            }
        }

5) Сохраняем файлы на сервере, обновляем модификаторы и смотрим код, на странице товара (Пример: https://basispro.com.ua/loft-5552.html )  в самом низу видим заветные строки:

var google_tag_params = {
dynx_itemid: '627',
dynx_pagetype: 'offerdetail',
dynx_totalvalue: '258.0000',
};

На данный момент не могу понять почему не работает на странице поиска и при оформлении заказа не цыпляет dynx_itemid:, если у кого есть идеи как решить просьба написать. Спасибо за внимание!

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


  • 7 месяцев спустя...

@hichlander

Спасибо!

Повторил Ваш код, в корзине и в поиске не отображается, т.к. на них ссылки другие..

поиск: 

      elseif ($this->request->get['route'] == 'product/search'){
                $data['dynx_pagetype'] = "searchresults";}

корзина (у меня simple, соответственно ссылка на simple):

      elseif ($this->request->get['route'] == 'checkout/simplecheckout'){
                $data['dynx_pagetype'] = "cart";}

Все работает, корзину и поиск определяет, только тотал количества и цены товаров по корзине не считает.. Корзину определил, а товары в корзине нет :( 

Если кто знает, подскажите. Спасибо!

 

Ссылка на комментарий
Поделиться на других сайтах


  • 8 месяцев спустя...
В 01.11.2017 в 19:39, Shkodich сказал:

@hichlander

Спасибо!

Повторил Ваш код, в корзине и в поиске не отображается, т.к. на них ссылки другие..

поиск: 

      elseif ($this->request->get['route'] == 'product/search'){
                $data['dynx_pagetype'] = "searchresults";}

корзина (у меня simple, соответственно ссылка на simple):

      elseif ($this->request->get['route'] == 'checkout/simplecheckout'){
                $data['dynx_pagetype'] = "cart";}

Все работает, корзину и поиск определяет, только тотал количества и цены товаров по корзине не считает.. Корзину определил, а товары в корзине нет  

Если кто знает, подскажите. Спасибо!

 

 Такая же история и у меня, Подскажите вы разобрались в чем проблема?

Ссылка на комментарий
Поделиться на других сайтах


  • 5 недель спустя...
В 01.11.2017 в 19:39, Shkodich сказал:

@hichlander

Спасибо!

Повторил Ваш код, в корзине и в поиске не отображается, т.к. на них ссылки другие..

поиск: 

      elseif ($this->request->get['route'] == 'product/search'){
                $data['dynx_pagetype'] = "searchresults";}

корзина (у меня simple, соответственно ссылка на simple):

      elseif ($this->request->get['route'] == 'checkout/simplecheckout'){
                $data['dynx_pagetype'] = "cart";}

Все работает, корзину и поиск определяет, только тотал количества и цены товаров по корзине не считает.. Корзину определил, а товары в корзине нет  

Если кто знает, подскажите. Спасибо!

 

удалось кому то решить?

Ссылка на комментарий
Поделиться на других сайтах


  • 2 года спустя...

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.