Добрый день! Хотелось бы узнать, кто подключал Google E-Commerce (стандартную или расширенную коммерцию). Как работает? Как подключали (вносили вручную правки в код или использовали модули, например Google Analytics E-commerce Tracking PRO или подобные)?
Желание подключиться есть, но надо привлекать какого-то спеца. Пока стоит подождать и посмотреть на опыт других
Пока в отчете Google Analytics в разделе Электронная торговля удалось вывести ID транзакции (что соответствует номеру заказа) и сумму заказа. Почему-то название товара не выводит. Вот что я нашел и использовал. Может кто подскажет еще чего... Для OpenCart 2.x. Создаем GA_ecommerce.ocmod.xml и добавляем в него код: Код: <?xml version="1.0" encoding="utf-8"?> <modification> <name>Google Analytics - Ecommerce Tracking</name> <code>default</code> <version>1.0</version> <author>kikasso</author> <file path="catalog\controller\checkout\success.php"> <operation> <search><![CDATA[if (isset($this->session->data['order_id'])) {]]></search> <add position="after"><![CDATA[ $data['order_id'] = $this->session->data['order_id']; $data['store_name'] = $this->config->get('config_name'); $this->load->model('account/order'); $data['order_info'] = $this->model_account_order->getOrder($this->session->data['order_id']); $data['order_products'] = $this->model_account_order->getOrderProducts($this->session->data['order_id']); $tax = 0; foreach($data['order_products'] as $row){ $tax = $tax + $row['tax']; } $data['tax'] = $tax; ]]></add> </operation> </file> <file path="catalog\view\theme\*\template\common\success.tpl"> <operation> <search><![CDATA[<?php echo $footer; ?>]]></search> <add position="before"><![CDATA[ <?php if(isset($order_id) && $order_id) { ?> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-xxxxxxxx-x']); _gaq.push(['_set', 'currencyCode', '<?php $order_info["currency_code"]; ?>']); _gaq.push(['_trackPageview']); _gaq.push(['_addTrans', '<?php echo $order_id; ?>', // transaction ID - required '<?php echo $store_name; ?>', // affiliation or store name '<?php echo $order_info["total"]; ?>', // total - required '<?php echo $tax; ?>', // tax '<?php echo $order_info["shipping_city"]; ?>', // city '<?php echo $order_info["shipping_zone"]; ?>', // state or province '<?php echo $order_info["shipping_country"]; ?>' // country ]); <?php foreach ($order_products as $row) { ?> _gaq.push(['_addItem', '<?php echo $order_id; ?>', // transaction ID - required '<?php echo $row["model"]; ?>', // SKU/code - required '<?php echo $row["name"]; ?>', // product name '<?php echo $row["price"]; ?>', // unit price - required '<?php echo $row["quantity"]; ?>' // quantity - required ]); <?php } ?> _gaq.push(['_trackTrans']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> <?php } ?> ]]></add> </operation> </file> </modification> Файл GA_ecommerce.ocmod.xml заливаем в каталог /system/ (или в админке добавляем) и обновляем модификатор. UA-xxxxxxxx-x в коде меняем на свой ID в Google Analytics.
Да, все верно, в коде есть вывод названия товара. Но в Google Analytics такой результат: http://snag.gy/N9kvw.jpg 1) т.е. не выводится продукт (name) и идентификатор продукта (model) 2) Категория не выводится, но и не должна, так как в коде нет ее. 3) Источник выводится правильно.
Добрый день, файл сделал, установил, но в аналитиксе информация не появляется, скажите надо как-то в админке ещё включать?
В админке нет, но надо включить в самом Google Analytics: Администратор - Представление - Настройки электронной торговли. Статус и Включение отчетов по сопутствующим товарам нажать на ВКЛ. Расширенную электронную торговлю не включать. Отчеты тут: Отчеты - Конверсии - Электронная торговля
Всем привет. Выкладываю еще один вариант модификатора для Google E-Commerce. Отличие от прошлого в том, что этот работает полностью. И выводит наконец таки Имя продукта, Идентификатор продукта (Модель/Артикул), Категорию продукта и т.д. Кто установил старый, его надо удалить перед использованием этого. HTML: <?xml version="1.0" encoding="utf-8"?> <modification> <name>Integracao com Google Analytics E-commerce.</name> <code>google-analytics-ecommerce</code> <version>1.0</version> <author>OpenCart Brasil</author> <link>http://www.opencartbrasil.com.br</link> <file path="catalog/model/checkout/order.php"> <operation> <search> <![CDATA[ public function getOrder($order_id) { ]]> </search> <add position="before"> <![CDATA[ public function getOrderGAC($order_id) { $order_query = $this->db->query("SELECT o.order_id, o.store_name, o.language_id, o.currency_code, o.currency_value, o.total FROM `" . DB_PREFIX . "order` o WHERE o.order_id = '" . (int)$order_id . "'"); if ($order_query->num_rows) { $language_id = $order_query->row['language_id']; $order_product_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'"); foreach ($order_product_query->rows as $product) { $option_data = ''; $order_option_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_option WHERE order_id = '" . (int)$order_id . "' AND order_product_id = '" . (int)$product['order_product_id'] . "'"); foreach ($order_option_query->rows as $option) { if ($option['type'] != 'file') { $option_data .= $option['name'] . ': ' . (utf8_strlen($option['value']) > 20 ? utf8_substr($option['value'], 0, 20) . '..' : $option['value']) . ' - '; } } $option_data = rtrim($option_data, ' - '); $category_data = ''; $category_query = $this->db->query("SELECT cd.name FROM `" . DB_PREFIX . "product_to_category` pc INNER JOIN `" . DB_PREFIX . "category_description` cd ON pc.category_id = cd.category_id WHERE pc.product_id = '" . (int)$product['product_id'] . "' AND cd.language_id = '" . (int)$language_id . "'"); $i = 0; foreach ($category_query->rows as $category) { $i++; if ($i <= 5) { $category_data .= $category['name'] . '/'; } } $category_data = rtrim($category_data, '/'); if ($option_data) { $name = utf8_substr($product['name'] . ' - ' . $option_data, 0, 80); } else { $name = utf8_substr($product['name'], 0, 80); } $products[] = array( 'name' => $name, 'sku' => $product['model'], 'category' => $category_data, 'price' => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), false, $order_query->row['currency_value']), 'quantity' => $product['quantity'] ); } return array( 'order_id' => $order_query->row['order_id'], 'store_name' => $order_query->row['store_name'], 'products' => $products, 'total' => $this->currency->format($order_query->row['total'], false, $order_query->row['currency_value']), 'currency_code' => $order_query->row['currency_code'] ); } else { return false; } } ]]> </add> </operation> </file> <file path="catalog/controller/checkout/success.php"> <operation> <search> <![CDATA[ if (isset($this->session->data['order_id'])) { ]]> </search> <add position="before"> <![CDATA[ $data['gaTracking'] = ''; if (isset($this->session->data['order_id'])) { $this->load->model('checkout/order'); $orderInfo = $this->model_checkout_order->getOrderGAC($this->session->data['order_id']); if ($orderInfo) { $data['gaTracking'] .= sprintf("ga('ecommerce:addTransaction', {'id': '%s', 'affiliation': '%s', 'revenue': '%s', 'currency': '%s'});", $orderInfo['order_id'], $orderInfo['store_name'], $orderInfo['total'], $orderInfo['currency_code'] ) . "\n"; $data['gaTracking'] = rtrim($data['gaTracking'], '\n'); foreach ($orderInfo['products'] as $product) { $data['gaTracking'] .= sprintf("ga('ecommerce:addItem', {'id': '%s', 'name': '%s', 'sku': '%s', 'category': '%s', 'price': '%s', 'quantity': '%s', 'currency': '%s'});", $orderInfo['order_id'], $product['name'], $product['sku'], $product['category'], $product['price'], $product['quantity'], $orderInfo['currency_code'] ) . "\n"; } } } ]]> </add> </operation> </file> <file path="catalog/view/theme/*/template/common/success.tpl"> <operation> <search> <![CDATA[ <?php echo $footer; ?> ]]> </search> <add position="before"> <![CDATA[ <?php if(isset($gaTracking)) { if($gaTracking) { echo "<script>" . "\n"; echo "ga('require', 'ecommerce');" . "\n"; echo $gaTracking; echo "ga('ecommerce:send');" . "\n"; echo "</script>" . "\n"; } } ?> ]]> </add> </operation> </file> </modification>
Так может нужно не модификатор выкладывать, а ссылку на автора? С инструкцией? https://www.opencart.com/index.php?...earch=google E-commerce&filter_download_id=43