"Back"

{{{Block Source: Mage_GoogleAnalytics_Block_Ga}}{{Block Source: Mage_GoogleAnalytics_Block_Ga}}{{Block Source: Mage_GoogleAnalytics_Block_Ga}}{{Mage_Core}}}

{{{ <?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Open Software License (OSL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/osl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magento.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magento.com for more information.
 *
 * @category    Mage
 * @package     Mage_GoogleAnalytics
 * @copyright  Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
 * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */


/**
 * GoogleAnalitics Page Block
 *
 * @category   Mage
 * @package    Mage_GoogleAnalytics
 * @author     Magento Core Team <core@magentocommerce.com>
 */
class Mage_GoogleAnalytics_Block_Ga extends Mage_Core_Block_Template
{
    
/**
     * @deprecated after 1.4.1.1
     * @see self::_getOrdersTrackingCode()
     * @return string
     */
    
public function getQuoteOrdersHtml()
    {
        return 
'';
    }

    
/**
     * @deprecated after 1.4.1.1
     * self::_getOrdersTrackingCode()
     * @return string
     */
    
public function getOrderHtml()
    {
        return 
'';
    }

    
/**
     * @deprecated after 1.4.1.1
     * @see _toHtml()
     * @return string
     */
    
public function getAccount()
    {
        return 
'';
    }

    
/**
     * Get a specific page name (may be customized via layout)
     *
     * @return string|null
     */
    
public function getPageName()
    {
        return 
$this->_getData('page_name');
    }

    
/**
     * Render regular page tracking javascript code
     * The custom "page name" may be set from layout or somewhere else. It must start from slash.
     *
     * @param string $accountId
     * @return string
     */
    
protected function _getPageTrackingCode($accountId)
    {
        if (
$this->helper('googleanalytics')->isUseUniversalAnalytics()) {
            return 
$this->_getPageTrackingCodeUniversal($accountId);
        } else {
            return 
$this->_getPageTrackingCodeAnalytics($accountId);
        }
    }

    
/**
     * Render regular page tracking javascript code
     * The custom "page name" may be set from layout or somewhere else. It must start from slash.
     *
     * @param string $accountId
     * @return string
     */
    
protected function _getPageTrackingCodeUniversal($accountId)
    {
        return 
"
ga('create', '
{$this->jsQuoteEscape($accountId)}', 'auto');
$this->_getAnonymizationCode() . "
ga('send', 'pageview');
"
;
    }

    
/**
     * Render regular page tracking javascript code
     * The custom "page name" may be set from layout or somewhere else. It must start from slash.
     *
     * @link http://code.google.com/apis/analytics/docs/gaJS/gaJSApiBasicConfiguration.html#_gat.GA_Tracker_._trackPageview
     * @link http://code.google.com/apis/analytics/docs/gaJS/gaJSApi_gaq.html
     * @param string $accountId
     * @return string
     */
    
protected function _getPageTrackingCodeAnalytics($accountId)
    {
        
$pageName   trim($this->getPageName());
        
$optPageURL '';
        if (
$pageName && preg_match('/^\/.*/i'$pageName)) {
            
$optPageURL ", '{$this->jsQuoteEscape($pageName)}'";
        }
        return 
"
_gaq.push(['_setAccount', '
{$this->jsQuoteEscape($accountId)}']);
$this->_getAnonymizationCode() . "
_gaq.push(['_trackPageview'
{$optPageURL}]);
"
;
    }

    
/**
     * Render information about specified orders and their items
     *
     * @return string
     */
    
protected function _getOrdersTrackingCode()
    {
        if (
$this->helper('googleanalytics')->isUseUniversalAnalytics()) {
            return 
$this->_getOrdersTrackingCodeUniversal();
        } else {
            return 
$this->_getOrdersTrackingCodeAnalytics();
        }
    }

    
/**
     * Render information about specified orders and their items
     *
     * @return string
     */
    
protected function _getOrdersTrackingCodeUniversal()
    {
        
$orderIds $this->getOrderIds();
        if (empty(
$orderIds) || !is_array($orderIds)) {
            return;
        }
        
$collection Mage::getResourceModel('sales/order_collection')
            ->
addFieldToFilter('entity_id', array('in' => $orderIds));
        
$result = array();
        
$result[] = "ga('require', 'ecommerce')";
        foreach (
$collection as $order) {
            
$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()
            );
            foreach (
$order->getAllVisibleItems() as $item) {
                
$result[] = sprintf("ga('ecommerce:addItem', {
'id': '%s',
'sku': '%s',
'name': '%s',
'category': '%s',
'price': '%s',
'quantity': '%s'
});"
,
                    
$order->getIncrementId(),
                    
$this->jsQuoteEscape($item->getSku()),
                    
$this->jsQuoteEscape($item->getName()),
                    
null// there is no "category" defined for the order item
                    
$item->getBasePrice(),
                    
$item->getQtyOrdered()
                );
            }
            
$result[] = "ga('ecommerce:send');";
        }
        return 
implode("\n"$result);
    }

    
/**
     * Render information about specified orders and their items
     *
     * @link http://code.google.com/apis/analytics/docs/gaJS/gaJSApiEcommerce.html#_gat.GA_Tracker_._addTrans
     * @return string
     */
    
protected function _getOrdersTrackingCodeAnalytics()
    {
        
$orderIds $this->getOrderIds();
        if (empty(
$orderIds) || !is_array($orderIds)) {
            return;
        }
        
$collection Mage::getResourceModel('sales/order_collection')
            ->
addFieldToFilter('entity_id', array('in' => $orderIds));
        
$result = array();
        foreach (
$collection as $order) {
            if (
$order->getIsVirtual()) {
                
$address $order->getBillingAddress();
            } else {
                
$address $order->getShippingAddress();
            }
            
$result[] = sprintf("_gaq.push(['_addTrans', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s']);",
                
$order->getIncrementId(),
                
$this->jsQuoteEscape(Mage::app()->getStore()->getFrontendName()),
                
$order->getBaseGrandTotal(),
                
$order->getBaseTaxAmount(),
                
$order->getBaseShippingAmount(),
                
$this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getCity())),
                
$this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getRegion())),
                
$this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getCountry()))
            );
            foreach (
$order->getAllVisibleItems() as $item) {
                
$result[] = sprintf("_gaq.push(['_addItem', '%s', '%s', '%s', '%s', '%s', '%s']);",
                    
$order->getIncrementId(),
                    
$this->jsQuoteEscape($item->getSku()), $this->jsQuoteEscape($item->getName()),
                    
null// there is no "category" defined for the order item
                    
$item->getBasePrice(), $item->getQtyOrdered()
                );
            }
            
$result[] = "_gaq.push(['_trackTrans']);";
        }
        return 
implode("\n"$result);
    }

    
/**
     * Render IP anonymization code for page tracking javascript code
     *
     * @return string
     */
    
protected function _getAnonymizationCode()
    {
        if (!
Mage::helper('googleanalytics')->isIpAnonymizationEnabled()) {
            return 
'';
        }
        if (
$this->helper('googleanalytics')->isUseUniversalAnalytics()) {
            return 
$this->_getAnonymizationCodeUniversal();
        } else {
            return 
$this->_getAnonymizationCodeAnalytics();
        }
    }

    
/**
     * Render IP anonymization code for page tracking javascript universal analytics code
     *
     * @return string
     */
    
protected function _getAnonymizationCodeUniversal()
    {
        return 
"ga('set', 'anonymizeIp', true);";
    }

    
/**
     * Render IP anonymization code for page tracking javascript google analytics code
     *
     * @return string
     */
    
protected function _getAnonymizationCodeAnalytics()
    {
        return 
"_gaq.push (['_gat._anonymizeIp']);";
    }

    
/**
     * Is ga available
     *
     * @return bool
     */
    
protected function _isAvailable()
    {
        return 
Mage::helper('googleanalytics')->isGoogleAnalyticsAvailable();
    }

    
/**
     * Render GA tracking scripts
     *
     * @return string
     */
    
protected function _toHtml()
    {
        if (!
$this->_isAvailable()) {
            return 
'';
        }
        return 
parent::_toHtml();
    }
}
}}{{ <?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Open Software License (OSL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/osl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magento.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magento.com for more information.
 *
 * @category    Mage
 * @package     Mage_GoogleAnalytics
 * @copyright  Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
 * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */


/**
 * GoogleAnalitics Page Block
 *
 * @category   Mage
 * @package    Mage_GoogleAnalytics
 * @author     Magento Core Team <core@magentocommerce.com>
 */
class Mage_GoogleAnalytics_Block_Ga extends Mage_Core_Block_Template
{
    
/**
     * @deprecated after 1.4.1.1
     * @see self::_getOrdersTrackingCode()
     * @return string
     */
    
public function getQuoteOrdersHtml()
    {
        return 
'';
    }

    
/**
     * @deprecated after 1.4.1.1
     * self::_getOrdersTrackingCode()
     * @return string
     */
    
public function getOrderHtml()
    {
        return 
'';
    }

    
/**
     * @deprecated after 1.4.1.1
     * @see _toHtml()
     * @return string
     */
    
public function getAccount()
    {
        return 
'';
    }

    
/**
     * Get a specific page name (may be customized via layout)
     *
     * @return string|null
     */
    
public function getPageName()
    {
        return 
$this->_getData('page_name');
    }

    
/**
     * Render regular page tracking javascript code
     * The custom "page name" may be set from layout or somewhere else. It must start from slash.
     *
     * @param string $accountId
     * @return string
     */
    
protected function _getPageTrackingCode($accountId)
    {
        if (
$this->helper('googleanalytics')->isUseUniversalAnalytics()) {
            return 
$this->_getPageTrackingCodeUniversal($accountId);
        } else {
            return 
$this->_getPageTrackingCodeAnalytics($accountId);
        }
    }

    
/**
     * Render regular page tracking javascript code
     * The custom "page name" may be set from layout or somewhere else. It must start from slash.
     *
     * @param string $accountId
     * @return string
     */
    
protected function _getPageTrackingCodeUniversal($accountId)
    {
        return 
"
ga('create', '
{$this->jsQuoteEscape($accountId)}', 'auto');
$this->_getAnonymizationCode() . "
ga('send', 'pageview');
"
;
    }

    
/**
     * Render regular page tracking javascript code
     * The custom "page name" may be set from layout or somewhere else. It must start from slash.
     *
     * @link http://code.google.com/apis/analytics/docs/gaJS/gaJSApiBasicConfiguration.html#_gat.GA_Tracker_._trackPageview
     * @link http://code.google.com/apis/analytics/docs/gaJS/gaJSApi_gaq.html
     * @param string $accountId
     * @return string
     */
    
protected function _getPageTrackingCodeAnalytics($accountId)
    {
        
$pageName   trim($this->getPageName());
        
$optPageURL '';
        if (
$pageName && preg_match('/^\/.*/i'$pageName)) {
            
$optPageURL ", '{$this->jsQuoteEscape($pageName)}'";
        }
        return 
"
_gaq.push(['_setAccount', '
{$this->jsQuoteEscape($accountId)}']);
$this->_getAnonymizationCode() . "
_gaq.push(['_trackPageview'
{$optPageURL}]);
"
;
    }

    
/**
     * Render information about specified orders and their items
     *
     * @return string
     */
    
protected function _getOrdersTrackingCode()
    {
        if (
$this->helper('googleanalytics')->isUseUniversalAnalytics()) {
            return 
$this->_getOrdersTrackingCodeUniversal();
        } else {
            return 
$this->_getOrdersTrackingCodeAnalytics();
        }
    }

    
/**
     * Render information about specified orders and their items
     *
     * @return string
     */
    
protected function _getOrdersTrackingCodeUniversal()
    {
        
$orderIds $this->getOrderIds();
        if (empty(
$orderIds) || !is_array($orderIds)) {
            return;
        }
        
$collection Mage::getResourceModel('sales/order_collection')
            ->
addFieldToFilter('entity_id', array('in' => $orderIds));
        
$result = array();
        
$result[] = "ga('require', 'ecommerce')";
        foreach (
$collection as $order) {
            
$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()
            );
            foreach (
$order->getAllVisibleItems() as $item) {
                
$result[] = sprintf("ga('ecommerce:addItem', {
'id': '%s',
'sku': '%s',
'name': '%s',
'category': '%s',
'price': '%s',
'quantity': '%s'
});"
,
                    
$order->getIncrementId(),
                    
$this->jsQuoteEscape($item->getSku()),
                    
$this->jsQuoteEscape($item->getName()),
                    
null// there is no "category" defined for the order item
                    
$item->getBasePrice(),
                    
$item->getQtyOrdered()
                );
            }
            
$result[] = "ga('ecommerce:send');";
        }
        return 
implode("\n"$result);
    }

    
/**
     * Render information about specified orders and their items
     *
     * @link http://code.google.com/apis/analytics/docs/gaJS/gaJSApiEcommerce.html#_gat.GA_Tracker_._addTrans
     * @return string
     */
    
protected function _getOrdersTrackingCodeAnalytics()
    {
        
$orderIds $this->getOrderIds();
        if (empty(
$orderIds) || !is_array($orderIds)) {
            return;
        }
        
$collection Mage::getResourceModel('sales/order_collection')
            ->
addFieldToFilter('entity_id', array('in' => $orderIds));
        
$result = array();
        foreach (
$collection as $order) {
            if (
$order->getIsVirtual()) {
                
$address $order->getBillingAddress();
            } else {
                
$address $order->getShippingAddress();
            }
            
$result[] = sprintf("_gaq.push(['_addTrans', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s']);",
                
$order->getIncrementId(),
                
$this->jsQuoteEscape(Mage::app()->getStore()->getFrontendName()),
                
$order->getBaseGrandTotal(),
                
$order->getBaseTaxAmount(),
                
$order->getBaseShippingAmount(),
                
$this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getCity())),
                
$this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getRegion())),
                
$this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getCountry()))
            );
            foreach (
$order->getAllVisibleItems() as $item) {
                
$result[] = sprintf("_gaq.push(['_addItem', '%s', '%s', '%s', '%s', '%s', '%s']);",
                    
$order->getIncrementId(),
                    
$this->jsQuoteEscape($item->getSku()), $this->jsQuoteEscape($item->getName()),
                    
null// there is no "category" defined for the order item
                    
$item->getBasePrice(), $item->getQtyOrdered()
                );
            }
            
$result[] = "_gaq.push(['_trackTrans']);";
        }
        return 
implode("\n"$result);
    }

    
/**
     * Render IP anonymization code for page tracking javascript code
     *
     * @return string
     */
    
protected function _getAnonymizationCode()
    {
        if (!
Mage::helper('googleanalytics')->isIpAnonymizationEnabled()) {
            return 
'';
        }
        if (
$this->helper('googleanalytics')->isUseUniversalAnalytics()) {
            return 
$this->_getAnonymizationCodeUniversal();
        } else {
            return 
$this->_getAnonymizationCodeAnalytics();
        }
    }

    
/**
     * Render IP anonymization code for page tracking javascript universal analytics code
     *
     * @return string
     */
    
protected function _getAnonymizationCodeUniversal()
    {
        return 
"ga('set', 'anonymizeIp', true);";
    }

    
/**
     * Render IP anonymization code for page tracking javascript google analytics code
     *
     * @return string
     */
    
protected function _getAnonymizationCodeAnalytics()
    {
        return 
"_gaq.push (['_gat._anonymizeIp']);";
    }

    
/**
     * Is ga available
     *
     * @return bool
     */
    
protected function _isAvailable()
    {
        return 
Mage::helper('googleanalytics')->isGoogleAnalyticsAvailable();
    }

    
/**
     * Render GA tracking scripts
     *
     * @return string
     */
    
protected function _toHtml()
    {
        if (!
$this->_isAvailable()) {
            return 
'';
        }
        return 
parent::_toHtml();
    }
}
}}{{ <?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Open Software License (OSL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/osl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magento.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magento.com for more information.
 *
 * @category    Mage
 * @package     Mage_GoogleAnalytics
 * @copyright  Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
 * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */


/**
 * GoogleAnalitics Page Block
 *
 * @category   Mage
 * @package    Mage_GoogleAnalytics
 * @author     Magento Core Team <core@magentocommerce.com>
 */
class Mage_GoogleAnalytics_Block_Ga extends Mage_Core_Block_Template
{
    
/**
     * @deprecated after 1.4.1.1
     * @see self::_getOrdersTrackingCode()
     * @return string
     */
    
public function getQuoteOrdersHtml()
    {
        return 
'';
    }

    
/**
     * @deprecated after 1.4.1.1
     * self::_getOrdersTrackingCode()
     * @return string
     */
    
public function getOrderHtml()
    {
        return 
'';
    }

    
/**
     * @deprecated after 1.4.1.1
     * @see _toHtml()
     * @return string
     */
    
public function getAccount()
    {
        return 
'';
    }

    
/**
     * Get a specific page name (may be customized via layout)
     *
     * @return string|null
     */
    
public function getPageName()
    {
        return 
$this->_getData('page_name');
    }

    
/**
     * Render regular page tracking javascript code
     * The custom "page name" may be set from layout or somewhere else. It must start from slash.
     *
     * @param string $accountId
     * @return string
     */
    
protected function _getPageTrackingCode($accountId)
    {
        if (
$this->helper('googleanalytics')->isUseUniversalAnalytics()) {
            return 
$this->_getPageTrackingCodeUniversal($accountId);
        } else {
            return 
$this->_getPageTrackingCodeAnalytics($accountId);
        }
    }

    
/**
     * Render regular page tracking javascript code
     * The custom "page name" may be set from layout or somewhere else. It must start from slash.
     *
     * @param string $accountId
     * @return string
     */
    
protected function _getPageTrackingCodeUniversal($accountId)
    {
        return 
"
ga('create', '
{$this->jsQuoteEscape($accountId)}', 'auto');
$this->_getAnonymizationCode() . "
ga('send', 'pageview');
"
;
    }

    
/**
     * Render regular page tracking javascript code
     * The custom "page name" may be set from layout or somewhere else. It must start from slash.
     *
     * @link http://code.google.com/apis/analytics/docs/gaJS/gaJSApiBasicConfiguration.html#_gat.GA_Tracker_._trackPageview
     * @link http://code.google.com/apis/analytics/docs/gaJS/gaJSApi_gaq.html
     * @param string $accountId
     * @return string
     */
    
protected function _getPageTrackingCodeAnalytics($accountId)
    {
        
$pageName   trim($this->getPageName());
        
$optPageURL '';
        if (
$pageName && preg_match('/^\/.*/i'$pageName)) {
            
$optPageURL ", '{$this->jsQuoteEscape($pageName)}'";
        }
        return 
"
_gaq.push(['_setAccount', '
{$this->jsQuoteEscape($accountId)}']);
$this->_getAnonymizationCode() . "
_gaq.push(['_trackPageview'
{$optPageURL}]);
"
;
    }

    
/**
     * Render information about specified orders and their items
     *
     * @return string
     */
    
protected function _getOrdersTrackingCode()
    {
        if (
$this->helper('googleanalytics')->isUseUniversalAnalytics()) {
            return 
$this->_getOrdersTrackingCodeUniversal();
        } else {
            return 
$this->_getOrdersTrackingCodeAnalytics();
        }
    }

    
/**
     * Render information about specified orders and their items
     *
     * @return string
     */
    
protected function _getOrdersTrackingCodeUniversal()
    {
        
$orderIds $this->getOrderIds();
        if (empty(
$orderIds) || !is_array($orderIds)) {
            return;
        }
        
$collection Mage::getResourceModel('sales/order_collection')
            ->
addFieldToFilter('entity_id', array('in' => $orderIds));
        
$result = array();
        
$result[] = "ga('require', 'ecommerce')";
        foreach (
$collection as $order) {
            
$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()
            );
            foreach (
$order->getAllVisibleItems() as $item) {
                
$result[] = sprintf("ga('ecommerce:addItem', {
'id': '%s',
'sku': '%s',
'name': '%s',
'category': '%s',
'price': '%s',
'quantity': '%s'
});"
,
                    
$order->getIncrementId(),
                    
$this->jsQuoteEscape($item->getSku()),
                    
$this->jsQuoteEscape($item->getName()),
                    
null// there is no "category" defined for the order item
                    
$item->getBasePrice(),
                    
$item->getQtyOrdered()
                );
            }
            
$result[] = "ga('ecommerce:send');";
        }
        return 
implode("\n"$result);
    }

    
/**
     * Render information about specified orders and their items
     *
     * @link http://code.google.com/apis/analytics/docs/gaJS/gaJSApiEcommerce.html#_gat.GA_Tracker_._addTrans
     * @return string
     */
    
protected function _getOrdersTrackingCodeAnalytics()
    {
        
$orderIds $this->getOrderIds();
        if (empty(
$orderIds) || !is_array($orderIds)) {
            return;
        }
        
$collection Mage::getResourceModel('sales/order_collection')
            ->
addFieldToFilter('entity_id', array('in' => $orderIds));
        
$result = array();
        foreach (
$collection as $order) {
            if (
$order->getIsVirtual()) {
                
$address $order->getBillingAddress();
            } else {
                
$address $order->getShippingAddress();
            }
            
$result[] = sprintf("_gaq.push(['_addTrans', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s']);",
                
$order->getIncrementId(),
                
$this->jsQuoteEscape(Mage::app()->getStore()->getFrontendName()),
                
$order->getBaseGrandTotal(),
                
$order->getBaseTaxAmount(),
                
$order->getBaseShippingAmount(),
                
$this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getCity())),
                
$this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getRegion())),
                
$this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getCountry()))
            );
            foreach (
$order->getAllVisibleItems() as $item) {
                
$result[] = sprintf("_gaq.push(['_addItem', '%s', '%s', '%s', '%s', '%s', '%s']);",
                    
$order->getIncrementId(),
                    
$this->jsQuoteEscape($item->getSku()), $this->jsQuoteEscape($item->getName()),
                    
null// there is no "category" defined for the order item
                    
$item->getBasePrice(), $item->getQtyOrdered()
                );
            }
            
$result[] = "_gaq.push(['_trackTrans']);";
        }
        return 
implode("\n"$result);
    }

    
/**
     * Render IP anonymization code for page tracking javascript code
     *
     * @return string
     */
    
protected function _getAnonymizationCode()
    {
        if (!
Mage::helper('googleanalytics')->isIpAnonymizationEnabled()) {
            return 
'';
        }
        if (
$this->helper('googleanalytics')->isUseUniversalAnalytics()) {
            return 
$this->_getAnonymizationCodeUniversal();
        } else {
            return 
$this->_getAnonymizationCodeAnalytics();
        }
    }

    
/**
     * Render IP anonymization code for page tracking javascript universal analytics code
     *
     * @return string
     */
    
protected function _getAnonymizationCodeUniversal()
    {
        return 
"ga('set', 'anonymizeIp', true);";
    }

    
/**
     * Render IP anonymization code for page tracking javascript google analytics code
     *
     * @return string
     */
    
protected function _getAnonymizationCodeAnalytics()
    {
        return 
"_gaq.push (['_gat._anonymizeIp']);";
    }

    
/**
     * Is ga available
     *
     * @return bool
     */
    
protected function _isAvailable()
    {
        return 
Mage::helper('googleanalytics')->isGoogleAnalyticsAvailable();
    }

    
/**
     * Render GA tracking scripts
     *
     * @return string
     */
    
protected function _toHtml()
    {
        if (!
$this->_isAvailable()) {
            return 
'';
        }
        return 
parent::_toHtml();
    }
}
}}{{Mage_Core}}}