kolek5520

Настройка ecommerce в google analytics

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

kolek5520    9

Сегодня нашел бесплатный модуль для настройки ecommerce в google analytics.

Установил через Ocmod, все заработало: транзакции передаются в analytics Номер, Наименование, модель, стоймость

Вот только со стоймость, какая то фигня: сделал заказ на 4400 р а он мне выдает 4 руб

<?xml version="1.0" encoding="utf-8"?>
<modification>
  <name>Integração 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>

 

Может, кто подскажет где могла закрасться ошибка?

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


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

Я не спец, но думаю проблема в валюте. Проверьте и убедитесь, что везде (в аналитике, админке) стоит только валюта "рубль".

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


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

Кстати, если подождать, то потом сумма норм подтягивается. У меня тоже сначало было меньше, но спустя время нормализовалось.

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


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

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

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

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

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

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

Войти

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

Войти


  • Похожий контент

    • От Apostoll
      Доброго времени суток
      Хотел поинтересоваться, актуальный этот модуль для OpenCart 2 ???
      За ранее спасибо.
       
    • От markimax

      490.00 руб
      Скачать/Купить дополнение


      SEO HTTPS FIX PRO
      Демо: http://oc2.opencartadmin.com/admin/index.php?route=module/httpsfix
      Дополнение предназначено для корректного переноса Opencart на HTTPS протокол, и устранения проблем, связанных с этим процессом.
      Что умеет это дополнение.
      1. Заставляет Opnecart корректно отдавать контент одновременно по обеим протоколам (http и https)
      2. Гибко устранять "хвосты" связанные с разными вариантами ввода внешних и внутренних адресов.
      Так например при переезде на HTTPS необходимо изменить протокол подключения
      к внешним CDN например с http://cdn.google.com на https://cdn.google.com
      Модуль позволяет это сделать в два клика.
      3. Функционал переноса CSS и JS скриптов к конец исходного кода HTML страницы (Page Speed рекомендации) и минимизация HTML кода страницы
      В процессе наполнения контентом и верстки шаблонов магазина, зачастую встречаются ссылки
      как на внутренние так и на внешние ресурсы совершенно разного вида.
      Например если у вас встречаются ссылки www.vash_site.ru/link_1 и без vash_site.ru/link_1 в контенте магазина,
      автоматичски в https преобразуются только ссылки, которые вы определилил как основное зеркало.
      А все остальные остануться старые и бразуеры будут выписывать warning и не включать зеленый замочек.
      При помощи модуля, вы сможете создать любые правила для любых преобразований внутренних ссылок в магазине как внутренних так и внешних.
      Теперь вам не нужно судорожно искать, где же вы в шаблоне еще не поменяли http на https,
      достаточно посмотреть в консоль и написать в модуле соответсвующее правило.
      После склейки http и https, советую в htaccess настроить редирект 301 с http на https, чтобы ссылки магазина работали только по https протоколу
      Для правильной работы фикса у вас должны отличаться HTTP_CATALOG и HTTPS_CATALOG в config.php.
      Также мод фиксит проблемы определения протокола, при нестандартных настройках связки nginx => apache.
       
      Техническая поддержка

       
       
      Добавил markimax Добавлено 22.12.2016 Категория SEO, карта сайта, оптимизация Системные требования PHP 5.3+Если OC 1.5.x - vQmod Сайт разработчика http://opencartadmin.com Старая цена Метод активации Через официальный сайт дополнения Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1
      1.5.3.1 ocStore 2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От markimax
      Демо: http://oc2.opencartadmin.com/admin/index.php?route=module/httpsfix
      Дополнение предназначено для корректного переноса Opencart на HTTPS протокол, и устранения проблем, связанных с этим процессом.
      Что умеет это дополнение.
      1. Заставляет Opnecart корректно отдавать контент одновременно по обеим протоколам (http и https)
      2. Гибко устранять "хвосты" связанные с разными вариантами ввода внешних и внутренних адресов.
      Так например при переезде на HTTPS необходимо изменить протокол подключения
      к внешним CDN например с http://cdn.google.com на https://cdn.google.com
      Модуль позволяет это сделать в два клика.
      3. Функционал переноса CSS и JS скриптов к конец исходного кода HTML страницы (Page Speed рекомендации) и минимизация HTML кода страницы
      В процессе наполнения контентом и верстки шаблонов магазина, зачастую встречаются ссылки
      как на внутренние так и на внешние ресурсы совершенно разного вида.
      Например если у вас встречаются ссылки www.vash_site.ru/link_1 и без vash_site.ru/link_1 в контенте магазина,
      автоматичски в https преобразуются только ссылки, которые вы определилил как основное зеркало.
      А все остальные остануться старые и бразуеры будут выписывать warning и не включать зеленый замочек.
      При помощи модуля, вы сможете создать любые правила для любых преобразований внутренних ссылок в магазине как внутренних так и внешних.
      Теперь вам не нужно судорожно искать, где же вы в шаблоне еще не поменяли http на https,
      достаточно посмотреть в консоль и написать в модуле соответсвующее правило.
      После склейки http и https, советую в htaccess настроить редирект 301 с http на https, чтобы ссылки магазина работали только по https протоколу
      Для правильной работы фикса у вас должны отличаться HTTP_CATALOG и HTTPS_CATALOG в config.php.
      Также мод фиксит проблемы определения протокола, при нестандартных настройках связки nginx => apache.
       
      Техническая поддержка

       
       
    • От Alicosmo
      Всем доброго дня.
      Совсем недавно задавал вопросы по поводу настройки Google tag manager и отправки в analytics необходимой информации,(создавал в платных услугах)
      Желающих помочь было (только 1 человек)
      4 ночи за компьютером -  и пол дела сделано)
      Теперь не могу вывести название главной категории товара для отправки в analytics
      В категории - вывел категорию
      В карточке товара  вывел категорию но только получилось вывести полный путь категорий  от начальной до последней ( категория=категория1)
      Сейчас не могу вывести категорию товара на страницу успешного заказа. Нужно вывести только сумму товаров для отправки -  Не могу вывести код купона который применяли Помогите кто чем может
      Направьте пожалуйста по правильному пути?
      Код страницы успешного заказа прилагается-
       
      <?php echo $header; ?> <div class="container"> <ul class="breadcrumb"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li> <?php } ?> </ul> <div class="row"><?php echo $column_left; ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> <h1><?php echo $heading_title; ?></h1> <?php echo $text_message; ?> <?php if (isset($order_id)) { ?> <div id="print"> <div style="padding: 0px 0px 20px 0px;"> <?php echo $store_name; ?><br /> <?php echo $store_address; ?><br /> <?php echo $store_emal; ?><br /> <?php echo $store_tel; ?> </div> <table class="table table-bordered table-hover"> <thead> <tr> <td class="text-left" colspan="2"><?php echo $text_order_detail; ?></td> </tr> </thead> <tbody> <tr> <td class="text-left" style="width: 50%;"><?php if ($invoice_no) { ?> <b><?php echo $text_invoice_no; ?></b> <?php echo $invoice_no; ?><br /> <?php } ?> <b><?php echo $text_order_id; ?></b> #<?php echo $order_id; ?><br /> <b><?php echo $text_date_added; ?></b> <?php echo $date_added; ?></td> <td class="text-left"><?php if ($payment_method) { ?> <b><?php echo $text_payment_method; ?></b> <?php echo $payment_method; ?><br /> <?php } ?> <?php if ($shipping_method) { ?> <b><?php echo $text_shipping_method; ?></b> <?php echo $shipping_method; ?> <?php } ?></td> </tr> </tbody> </table> <table class="table table-bordered table-hover"> <thead> <tr> <td class="text-left" style="width: 50%;"><?php echo $text_payment_address; ?></td> <?php if ($shipping_address) { ?> <td class="text-left"><?php echo $text_shipping_address; ?></td> <?php } ?> </tr> </thead> <tbody> <tr> <td class="text-left"><?php echo $payment_address; ?></td> <?php if ($shipping_address) { ?> <td class="text-left"><?php echo $shipping_address; ?></td> <?php } ?> </tr> </tbody> </table> <div class="table-responsive"> <table class="table table-bordered table-hover"> <thead> <tr> <td class="text-left"><?php echo $column_name; ?></td> <td class="text-left"><?php echo $column_model; ?></td> <td class="text-right"><?php echo $column_quantity; ?></td> <td class="text-right"><?php echo $column_price; ?></td> <td class="text-right"><?php echo $column_total; ?></td> </tr> </thead> <tbody> <?php foreach ($products as $product) { ?> <tr> <td class="text-left"><?php echo $product['name']; ?> <?php foreach ($product['option'] as $option) { ?> <br /> &nbsp;<small> - <?php echo $option['name']; ?>: <?php echo $option['value']; ?></small> <?php } ?></td> <td class="text-left"><?php echo $product['model']; ?></td> <td class="text-right"><?php echo $product['quantity']; ?></td> <td class="text-right"><?php echo $product['price']; ?></td> <td class="text-right"><?php echo $product['total']; ?></td> </tr> <?php } ?> <?php foreach ($vouchers as $voucher) { ?> <tr> <td class="text-left"><?php echo $voucher['description']; ?></td> <td class="text-left"></td> <td class="text-right">1</td> <td class="text-right"><?php echo $voucher['amount']; ?></td> <td class="text-right"><?php echo $voucher['amount']; ?></td> </tr> <?php } ?> </tbody> <tfoot> <?php foreach ($totals as $total) { ?> <tr> <td colspan="3"></td> <td class="text-right"><b><?php echo $total['title']; ?></b></td> <td class="text-right"><?php echo $total['text']; ?></td> </tr> <?php } ?> </tfoot> </table> </div> <?php if ($comment) { ?> <table class="table table-bordered table-hover"> <thead> <tr> <td class="text-left"><?php echo $text_comment; ?></td> </tr> </thead> <tbody> <tr> <td class="text-left"><?php echo $comment; ?></td> </tr> </tbody> </table> <?php } ?> <?php if ($histories) { ?> <h3><?php echo $text_history; ?></h3> <table class="table table-bordered table-hover"> <thead> <tr> <td class="text-left"><?php echo $column_date_added; ?></td> <td class="text-left"><?php echo $column_status; ?></td> <td class="text-left"><?php echo $column_comment; ?></td> </tr> </thead> <tbody> <?php foreach ($histories as $history) { ?> <tr> <td class="text-left"><?php echo $history['date_added']; ?></td> <td class="text-left"><?php echo $history['status']; ?></td> <td class="text-left"><?php echo $history['comment']; ?></td> </tr> <?php } ?> </tbody> </table> <!--Скрипт отправки данных в analytics--> <?php if (isset($order_id)) { ?> <script> window.dataLayer = window.dataLayer || []; dataLayer.push({ 'ecommerce': { 'currencyCode': 'RUB', 'purchase': { 'actionField': { 'id': '<?php echo $order_id; ?>', 'affiliation': '<?php echo $store_name; ?>', 'revenue': '<?php echo $total['text']; ?>', //Тут выводиться только общая сумма заказа <?php foreach ($vouchers as $voucher) { ?> //Тут думал что получиться но не получилось 'shipping': '<?php echo $voucher['amount']; ?>', 'coupon': '<?php echo $voucher['amount']; ?>' <?php } ?> }, 'products': [<?php foreach ($products as $product) { ?>{ 'name': '<?php echo $product['name']; ?>', 'id': '<?php echo $product['product_id']; ?>', 'price': '<?php echo $product['price']; ?>', 'brand': '<?php echo $product['manufacturer']; ?>', 'category': ' ', <?php foreach ($product['option'] as $option) { ?> 'variant': '<?php echo $option['value']; ?>', <?php } ?> 'quantity': <?php echo $product['quantity']; ?> },<?php } ?> ] } }, 'event': 'gtm-ee-event', 'gtm-ee-event-category': 'Расширенная торговля', 'gtm-ee-event-action': 'Покупка', 'gtm-ee-event-non-interaction': 'False', }); </script> <?php } ?> <!--Скрипт отправки данных в analytics Конец--> <?php } ?> </div> <?php } ?> <div class="buttons"> <div class="pull-right"><a href="<?php echo $continue; ?>" class="btn btn-primary"><?php echo $button_continue; ?></a></div> </div> <?php echo $content_bottom; ?></div> <?php echo $column_right; ?></div> </div> <?php if (isset($script_order)) { echo $script_order; } ?> <?php echo $footer; ?>  
  • Последние посетители   0 пользователей онлайн

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