Jump to content
Sign in to follow this  
chamaerops

Настройка Электронной торговли в Google Analytics

Recommended Posts

Полдня пытаюсь настроить передачу данных в Электронную торговлю в Google Analytics. На Opencart.com нашел один модуль, но там одна xml-ка. В ней синтаксис OCMOD, но он не устанавливается. Поэтому перенес все необходимые изменения из него прямо в файлы ОС (версия 2.1.0.1)

 

 если быть точнее, в файл /catalog/model/checkout/order.php был добавлен следующий код в конец.

 

 

public function getOrderTax($order_id){
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_total WHERE code = 'tax' AND order_id = '" . $order_id . "' LIMIT 1");

return $query->row;

}

public function getOrderShipping($order_id){
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_total WHERE code = 'shipping' AND order_id = '" . $order_id . "' LIMIT 1");

return $query->row;

}

public function getOrderProducts($order_id){
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . $order_id . "'");

if($query->num_rows){
return $query->rows;
} else {
return false;
}

}

в контроллере

в /catalog/controller/checkout/success.php

обьявили переменную 

 $order_id = $this->session->data['order_id'];

и добавлен следующий код

//NOC get Order-details
                if(isset($order_id))
                {
                    //LOAD MODEL
                    $this->load->model('checkout/order');

                    //GET ORDER DETAILS
                    $order_info = $this->model_checkout_order->getOrder($order_id);

                    //NEW MODEL TO COLLECT TAX
                    $get_order_tax = $this->model_checkout_order->getOrderTax($order_id);

                    if($get_order_tax){
                            //ASSIGN TAX TO NEW VARIABLE
                            $order_tax = $get_order_tax['value'];
                    } else {
                            //THERE WAS NO TAX COLLECTED
                            $order_tax = '';
                    }

                    //NEW MODEL TO COLLECT SHIPPING
                    $get_order_shipping = $this->model_checkout_order->getOrderShipping($order_id);

                    if($get_order_shipping){
                            //ASSIGN SHIPPING TO NEW VARIABLE
                            $order_shipping = $get_order_shipping['value'];
                    } else {
                            //THERE WAS NO SHIPPING COLLECTED
                            $order_shipping = 0;
                    }

                    //NEW MODEL TO COLLECT ALL PRODUCTS ASSOCIATED WITH ORDER
                    $get_order_products = $this->model_checkout_order->getOrderProducts($order_id);

                    //CREATE ARRAY TO HOLD PRODUCTS
                    $order_products = array();

                    foreach($get_order_products as $prod){

                            $order_products[] = array(
                                    'order_id'  => $order_id,
                                    'model'     => $prod['model'],
                                    'name'      => $prod['name'],
                                    'category'  => '',
                                    'price'     => number_format($prod['price'], 2, '.', ','),
                                    'quantity'  => $prod['quantity']
                            );

                    }

                    //NEW ORDER ARRAY
                    $order_tracker = array(
                            'order_id'    => $order_id,
                            'store_name'  => $order_info['store_name'],
                            'total'       => $order_info['total'],
                            'tax'         => $order_tax,
                            'shipping'    => $order_shipping,
                            'city'        => $order_info['payment_city'],
                            'state'       => $order_info['payment_zone'],
                            'country'     => $order_info['payment_country'],
                            'currency'    => $order_info['currency_code'],
                            'products'    => $order_products
                    );

                    $data['order_tracker'] = $order_tracker;

ну и соответственно, правки в success.tpl

 

<!-- order tracker here-->
                <?php if(isset($order_tracker)){

                    $tracking_info = '<script type="text/javascript">';
                    $tracking_info .= "ga('require', 'ecommerce', 'ecommerce.js');";

            //ADD TOP LEVEL TRACKING INFO
                    $tracking_info .= "ga('ecommerce:addTransaction', {
                    id: '" . $order_tracker['order_id'] . "',
                    affiliation: '" . $order_tracker['store_name'] . "',
                    revenue: '" . $order_tracker['total'] . "',
                    shipping: '" . $order_tracker['shipping'] . "' ,
                    tax: '" . $order_tracker['tax'] . "' }); ";


            //ADD INFO FOR EACH PRODUCT
                    foreach($order_tracker['products'] as $product){
                        $tracking_info .= "ga('ecommerce:addItem', {
                        id: '" . $order_tracker['order_id'] . "',
                        sku: '" . $product['model'] . "',
                        name: '" . $product['name'] . "',
                        category: '',
                        price: '" . $product['price'] . "',
                        quantity: '" . $product['quantity'] . "'});";
                    }

                $tracking_info .= "ga('ecommerce:send');";


                    $tracking_info .= '</script>';

                    echo $tracking_info;

                } ?>

Если честно, в кодинге не силен. Поэтому, прошу помощи, где может быть затык. Ну или подскажите модуль (бесплатный или платный с ценником до $20) с настройкой отдачи данных для E-commerce.

 

  • +1 1

Share this post


Link to post
Share on other sites

Тему можно закрыть :) вышеописанная инструкция заработала спустя 8 часов, (хотя по информации в инете обычно гугл подхватывает хти данные в течение 1-2 часов). Данные в аналитику поступают, новые заказы залетают в аналитику уже через несколько минут.

Возможно, кому то это пригодится позже.

Edited by chamaerops
  • +1 2

Share this post


Link to post
Share on other sites
On 11/26/2016 at 9:18 AM, chamaerops said:

Тему можно закрыть :) вышеописанная инструкция заработала спустя 8 часов, (хотя по информации в инете обычно гугл подхватывает хти данные в течение 1-2 часов). Данные в аналитику поступают, новые заказы залетают в аналитику уже через несколько минут.

Возможно, кому то это пригодится позже.

 

не подскажете, инструкция актуальна на 2019 год ? и весь код Вы добавляли вконце или в определенные строки ? На перед спасибо

Share this post


Link to post
Share on other sites

Как этот код подправить, что бы он работал с Google TAG Manager?

Share this post


Link to post
Share on other sites
В 05.03.2019 в 16:13, Denys сказал:

Как этот код подправить, что бы он работал с Google TAG Manager?

не нашли ответ? тоже интересует

Share this post


Link to post
Share on other sites
В 12.09.2019 в 16:53, Vladkh сказал:

не нашли ответ? тоже интересует

Нашел, нужно использовать gtag.js вместо ecommerce.js и google-analytics.js

вот доки, в нете в основном копипаст от сюда и полезной информации маловато будет, а то и вовсе такого городят дигитал маркетологи выдавая клик по кнопке за достижения цели, хотя это всего лишь цель клик по кнопке) и упорно советуют переводить ограниченные ресурсы на ютубах, но есть и адекватные кальмары правда предлагают настроить за деньгу и сразу становится понятно почему статистика самая неточная наука:-D

https://developers.google.com/analytics/devguides/collection/gtagjs/migration?hl=ru

https://developers.google.com/analytics/devguides/collection/gtagjs/enhanced-ecommerce?hl=ru

соответствующие события нужно создать через гугл тагменеджер и добавить тригер который будет срабатывать при событии purchase или переход урл success

 

Я столкнулся с другой проблемой, в теме newstore есть свой модуль заказа на одной страничке, я адаптировал код и все передает кроме категории и бренда товара. Ка их получить в контроллере и вывести в шаблоне quicknewstorechekaut.tpl ?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.