我正在尝试从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

10-05 22:28
查看更多