Thanks Nicolas.
1. The auto redirects is already enabled, but there is a 10 second delay before redirect. I also have payment data transfer option enabled. Return URL set in paypal:
www.mojooutdoors.com/index.php?option=co...end?utm_nooverride=1
2. In previous correspondence, we added the following function to my hikashopanalytics.php file just after the "onAfterOrderUpdate" function
public function onHikashopOrderTrackingDisplay(&$order) {
if(isset($order->order_type) && $order->order_type != 'sale')
return;
return $this->checkOrder($order, false);
}
and turned off the direct call method inside the "GoogleProcess" function
if($this->params->get('use_universal', 0)) {
$call = (int)$this->params->get('universal_always_directcall', 0);
if($call && $render)
return true;
if(!$call && !hikashop_isClient('administrator')) {
$ctrl = hikaInput::get()->getCmd('ctrl', '');
$task = hikaInput::get()->getCmd('task', '');
if($ctrl == 'checkout' && $task == 'notify')
$call = true;
}
/* Holden Addition */
//if($call)
//return $this->googleDirectCall($accounts, $order, $currencyInfo);
}
After making these changes, the source/channel/medium info displays properly inside GA. However, i've noticed that not all orders get sent to GA, hence the inquiry about (instant) auto redirect. Under the current implementation, if the user closes their browser before the 10 second redirect, then the GA packet is not sent/received.
Tonight, i tried using the latest hikashopanalytics plugin with the following options enabled (the rest are disabled):
1. Use universal
2. Single Submission
3. Always Use Direct Call
In the paypal plugin, i have the following options enabled (the rest are disabled):
1. Send Details of the Order
2. Allow Notifications
3. Address Override
4. Return Method
I do not have anything for the "return url" field as that is handled on the paypal account portal side.
I attempted to place several orders after clearing all cookies from my browser (to prevent any residuals). For all orders with stock hikashopanalytics.php and direct call option turned on, i'm showing orders logged in GA, but every orders shows up as channel = (other) and source/medium = (not set)/(not set). Without this additional information, GA is pretty much useless for tracking orders.
For the GA code on my side, i am loading it via index.php file:
<!-- Google Analytics -->
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-XXXXXXXXX-X', 'auto');
ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
<!-- End Google Analytics -->
Throughout checkout on my test purchases, i can track my progress through GA and see the source/medium is being logged properly, but it seems to break somewhere between leaving the site to go to paypal and returning back to the website. I'm not entirely sure why the direct call method doesn't seem to work for my website. I've even stripped our test server down to stock template and played with the options which gave the same results.
Am i missing something? This has been an odd problem we've been troubleshooting for over a year now. Usually, the GA order tracking just works out of the box, so i'm not sure what's special about our setup.
I can provide super user and/or FTP access if that helps to poke around the backend.