Magento 1.9.1.0 – How to Send Correct Order Currency to Universal Analytics

currencygoogle analytics

We've updated to Universal Analytics in Magento 1.9.1.0, but we run multiple store views each with their own currency and all feeding into one Google Analytics profile.

Currently that means Analytics treats the values sent from Magento as all being in the default currency set in Google Analytics (GBP) – ie. an order in GBP may be say £200, but the same product in yen may be Y20000, but analytics thinks its an order for £20000.. which is needless to say is skewing our analytics data.

Looking through the Analytics help pages (https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce#multicurrency) I can see there is a field available to specify to Google the currency you are sending the transaction as and then Google will handle the conversion which is grand.

The problem is I dont know how to edit Ga.php in Magento to get the currency code correctly set. At line 176 in Ga.php I can see where ga('ecommerce:addTransaction) is put together but how do I get the correct currency code from Magento at this point?

I would have assumed this would be correctly set by default by Magento but apparently not.

Thanks

Best Answer

Please try to replace this:

            $result[] = sprintf("ga('ecommerce:addTransaction', {
'id': '%s',
'affiliation': '%s',
'revenue': '%s',
'tax': '%s',
'shipping': '%s'
});",
                $order->getIncrementId(),
                $this->jsQuoteEscape(Mage::app()->getStore()->getFrontendName()),
                $order->getBaseGrandTotal(),
                $order->getBaseTaxAmount(),
                $order->getBaseShippingAmount()
            );

with this:

            $result[] = sprintf("ga('ecommerce:addTransaction', {
'id': '%s',
'affiliation': '%s',
'revenue': '%s',
'tax': '%s',
'shipping': '%s',
'currency': '%s'
});",
                $order->getIncrementId(),
                $this->jsQuoteEscape(Mage::app()->getStore()->getFrontendName()),
                $order->getGrandTotal(),
                $order->getTaxAmount(),
                $order->getShippingAmount(),
                $order->getOrderCurrencyCode()
            );

in app/code/core/Mage/GoogleAnalytics/Block/Ga.php.