xt:Commerce VEYTON 4.0 – Google Analytics Plugin mit Asynchronous und Ecommerce Tracking

Um das Google Analytics Plugin (xt_googleanalytics) auf den neusten Stand zu bringen, sind Änderungen im Installer (xt_googleanalytics.xml) und in der Klasse (class.xt_googleanalytics.php) nötig. Nach den Änderungen muss das Plugin neu installiert werden.

Die erste Änderung im Installer bezieht sich auf den Hookpoint, dieser ändert sich von „index_footer_tpl“ auf „display.php:content_head“, da der Tracking-Code nun im <head>-Bereich integriert wird.

Änderung im Intaller (./plugins/xt_googleanalytics/installer/xt_googleanalytics.xml)

Im Installer suchen:

index_footer_tpl

Ersetzten mit:

display.php:content_head

Die zweite Änderung erfolgt in der Klasse, um den Tracking-Code für das Asynchronous und das Ecommerce Tracking anzupassen.

Änderung in der Klasse (./plugins/xt_googleanalytics/classes/class.xt_googleanalytics.php)

Die beiden Funktionen „_getStandardCode()“ und „_getEcommerceCode()“ mit folgendem Code ersetzten:

function _getStandardCode() {
  $js='<script type="text/javascript">
    var _gaq = _gaq || [];
	_gaq.push(['_setAccount', ''.XT_GOOGLE_ANALYTICS_UA.'']);';
  if (XT_GOOGLE_ANALYTICS_ANON=='true') $js.='_gaq.push (['_gat._anonymizeIp']);'."n";  
  $js.='  _gaq.push(['_trackPageview']);
	(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>
	';		
  return $js;
}

function _getEcommerceCode() {
  global $db, $language, $success_order;
  $js='<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', ''.XT_GOOGLE_ANALYTICS_UA.'']);'."n";
  if (XT_GOOGLE_ANALYTICS_ANON=='true') $js.='_gaq.push (['_gat._anonymizeIp']);'."n";  
    $js.='  _gaq.push(['_trackPageview']);'."n";
  // add order data
  $query = "SELECT shop_title FROM xt_stores WHERE shop_id='" . $success_order->order_data['shop_id'] . "' LIMIT 0,1";
  $rs = $db->Execute($query);
  
  $tax = $success_order->order_total['total']['plain']-$success_order->order_total['total_otax']['plain'];
  $js.=' _gaq.push(['_addTrans',
    ''.$success_order->order_data['orders_id'].'',
    ''.$rs->fields['shop_title'].'',
    ''.$success_order->order_total['total']['plain'].'',
    ''.round($tax, 2).'',
    ''.round($success_order->order_total_data[0]['orders_total_price']['plain'], 2) .'',
    ''.$success_order->order_data['delivery_city'].'',
    ''.$success_order->order_data['delivery_postcode'].'',
    ''.$success_order->order_data['delivery_country_code'].''
    ]);
    ';

  // add products
	foreach ($success_order->order_products as $key => $arr) {
	  $query = "SELECT categories_id FROM ".TABLE_PRODUCTS_TO_CATEGORIES." WHERE products_id='" . $arr['products_id'] . "' LIMIT 0,1";
	  $rs = $db->Execute($query);
				
	  $query = "SELECT categories_name FROM ".TABLE_CATEGORIES_DESCRIPTION." WHERE categories_id='" . $rs->fields['categories_id'] . "' and language_code = '" . $language->code . "' LIMIT 0,1";
	  $rs = $db->Execute($query);
	
	
	  $js.=' _gaq.push(['_addItem',
    	''.$success_order->order_data['orders_id'].'',
    	''.$arr['products_id'].'',
    	''.addslashes($arr['products_name']).'',
    	''.$rs->fields['categories_name'].'',
    	''.$arr['products_price']['plain'].'',
    	''.$arr['products_quantity'].''
	  	]);
	  ';
	}
	
	$js.='
	  _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>
	  ';		
  return $js;
}
Dieser Beitrag wurde unter Update, xt:Commerce 4 abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.