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