我正在尝试从magento到GA跟踪产品类别(在“转换”>“电子商务”>“概述”下),但是使用magento默认核心GA.php文件的内容包括以下部分:
/app/code/core/Mage/GoogleAnalytics/Block/Ga.php
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()
);
}
*请参阅,他们推荐类别字段,并在其中添加null。
我正在寻找一种不修改/ core中的magento而是解决/ local中的问题的解决方案。
顺便说一句,我正在使用magento 1.7
希望有人可以帮助我,很多很多:D
最佳答案
我对Magento不太了解,但是我相信您要做的就是将整个文件从核心复制到您的/ local文件夹,然后更改为包含类别。 Magento在进入核心之前将始终在/ local中查找文件,但是路径必须匹配。因此,该文件应位于:
/app/code/local/Mage/GoogleAnalytics/Block/Ga.php
您将遇到的另一个问题是Magento产品可以具有多个类别。因此,您可能只想抓取第一个并传递给GA。
因此,文件应如下所示:
$_category = null;
$categoryIds = $_product->getCategoryIds();
if(count($categoryIds)) {
$firstCategoryId = $categoryIds[0];
$_category = Mage::getModel('catalog/category')->load($firstCategoryId);
}
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()),
$_category,
$item->getBasePrice(), $item->getQtyOrdered()
);
}
设在
how to get category name of current product (on product detail page) in magento