Перейти к содержанию
chamaerops

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

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

Полдня пытаюсь настроить передачу данных в Электронную торговлю в 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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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