Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


chamaerops

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
Надіслати
Поділитися на інших сайтах


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

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

Змінено користувачем chamaerops
  • +1 2
Надіслати
Поділитися на інших сайтах


  • 2 years later...
On 11/26/2016 at 9:18 AM, chamaerops said:

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

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

 

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

Надіслати
Поділитися на інших сайтах


  • 1 month later...
  • 6 months later...
  • 2 months later...
В 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 ?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.