[QUOTE=Jonesey;13653]Wenn dann nur andere Modulaufrufe eingebaut, direkt im Code an den Variablen o.ä. habe ich nichts gemacht…könnte ich auch gar nicht
Gibt es eine Möglichkeit sich die Variablen im thankyou.tpl anzeigen zu lassen? Da ist doch dieser Debug-Mode… Dann würde ich mal eine Testbestellung machen und die gesetzten Variablen vergleichen, vielleicht kommt man dem so auf die Spur…
Es ist komich, die Besucher etc. werden ganz normal gezählt, und im selben Modul wird ja auch das eCommerce-Tracking aufgerufen…
Vielleicht wird die if thispage-Abfrage am Anfang deines Moduls aus irgend einem Grund verneint und nicht ausgeführt. Gibt es den die Möglichkeit so eine Seite Step-by-step ausführen zu lassen um das auszuschliessen?
Viele Grüße,
Martin[/QUOTE]
[{assign var="is_final_step" value=true}]
ist in der “[B]thankyou.tpl[/B]” noch drin?
Ich habe mal eine [B]Testbestellung [/B]in Deinem Shop gemacht, die Bestelldaten werden [B]nicht[/B] mehr an GA übergeben!
Das ist das komplette JS für GA nach der Bestellung, also nur noch das normale Tracking…
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker=_gat._getTracker("xxxxxx");
pageTracker._initData();
pageTracker._trackPageview();
</script>
D.h., die “[B]is_final_step[/B]”-Variable ist also [B]nicht [/B]mehr gesetzt…
Ich habe das Ganze jetzt aber unabhängig von dieser Variablen in “[B]thankyou.tpl[/B]” gemacht, indem ich den Zeitpunkt der Übergabe der Bestelldaten an GA anhand des aktiven Klassennamens “thankyou” ermittle.
Also statt
if ($this->_tpl_vars['is_final_step']===true)
wird jetzt
if (oxConfig::getParameter( 'cl')=='thankyou')
geprüft.
Zudem glaubte ich, GA etwas Gutes zu tun, wenn ich die Umlaute und anderen Sonderzeichen als [B]HTML-Entities[/B] übergebe.
Was aber nicht der Fall ist, weil GA den Text dort einfach abschneidet, wo die HTML-Entity ( z.B. “ü”) beginnt…
Ich habe daher die Datenkonvertierung mit “[B]htmlspecialchars[/B]” aus der Routine entfernt.
Folgend ist der aktuelle Stand der GA-Routine, verwende mal diesen…
<?php
/* -----------------------------------------------------------------------------------------
$Id: pt_google_analytics.js.php 1116 2009-07-11 19:31:14Z gswkaiser $
Copyright (c) 2009 Dipl.-Ing.(TH) Winfried Kaiser, [email protected]
Not released under the GNU General Public License
---------------------------------------------------------------------------------------*/
$google_analytics='
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src=\'" + gaJsHost + "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker=_gat._getTracker("'.GOOGLE_ANALYTICS_ID.'");
pageTracker._initData();
pageTracker._trackPageview';
if ($page_viewed)
{
$google_analytics.='("'.$page_viewed.'")';
}
else
{
$google_analytics.='()';
}
//if ($this->_tpl_vars['is_final_step']===true)
if (oxConfig::getParameter( 'cl')=='thankyou')
{
$order=$this->_tpl_vars['order'];
$total=$order->getTotalOrderSum();
$net=$order->getOrderNetSum();
$store_name=$this->_tpl_vars['oxcmp_shop']->oxshops__oxtitleprefix->value;
$orders_id=$order->oxorder__oxordernr->value;
$city=$order->oxorder__oxdelcity->value;
if (!$city)
{
$city=$order->oxorder__oxbillcity->value;
}
$country=$order->getDelCountry()->value;
if (!$country)
{
$country=$order->getBillCountry()->value;
}
$google_analytics.='
pageTracker._addTrans(
"'.$orders_id.'", // Order ID
"'.addslashes($store_name).'", // Affiliation
"'.round($total,2).'", // Total
"'.round($total-$net,2).'", // Tax
"'.round($order->oxorder__oxdelcost->value,2).'", // Shipping
"'.addslashes($city).'", // City
"", // State
"'.addslashes($country).'" // Country
);
';
$oArticles = $order->getOrderArticles(true);
// product list
foreach ( $oArticles as $key => $oOrderArt )
{
$google_analytics.='
pageTracker._addItem(
"'.$orders_id.'", // Order ID
"'.$oOrderArt->oxorderarticles__oxartnum->value.'", // SKU
"'.$oOrderArt->oxorderarticles__oxtitle->value.'", // Product Name
"'.$oOrderArt->oxorderarticles__oxselvariant->value.'", // Category/Attributes
"'.$oOrderArt->oxorderarticles__oxbprice->value.'", // Price
"'.$oOrderArt->oxorderarticles__oxamount->value.'" // Quantity
)
';
}
$google_analytics.='
pageTracker._trackTrans();';
}
$google_analytics.=';
</script>
';
echo $google_analytics;
?>
Du kannst nach Abschluss der Bestellung sehen, welche Daten an GA übergeben werden, indem Du den Quellcode der “thankyou”-Seite öffnest, und den Text “[B]var gaJsHost[/B]” suchst.
Dort beginnt dann das für GA generierte Javascript.