Magento获得产品的类别集合 - 特定于多个站点

时间:2014-07-11 20:46:25

标签: php magento magento-1.8

我有一个多站点设置,Magento 1.8,我想列出产品包含在文件模板/ catalog / product / view / description.phtml中的类别

我想在每个网站的基础上这样做。例如,产品在Site 1和Site 2上出售......

在网站1上,它列在A类和B类

在网站2上,它列在类别Y和类别Z

因此,在Site 1产品说明中,我想列出A类和B类,但不列出Y和Z

在网站2产品说明中,我想列出类别Y和Z,但不列出A和B.

这是我到目前为止的代码,但是这列出了所有网站中包含的产品的所有类别,如何强制它仅列出特定网站的类别......

$catIds = $this->getProduct()->getCategoryIds();
$catCollection = Mage::getResourceModel('catalog/category_collection')
                     ->addAttributeToSelect('name')
                     ->addAttributeToSelect('url')
                     ->addAttributeToSelect('*')
                     ->addAttributeToFilter('entity_id', $catIds)
                     ->addIsActiveFilter();

foreach($catCollection as $cat){

    echo "<a href=\"";
    echo $cat->getUrl();
    echo "\">";
    echo $cat->getName();
    echo "</a><br/>";
}

1 个答案:

答案 0 :(得分:-1)

试试这个:

$category_ids = $this->getProduct()->getCategoryIds();
foreach ($category_ids as $category_id) {
    $category = Mage::getModel('catalog/category')->load($category_id);
    if ($category->getIsActive()) {
        echo $category->getUrl();
        echo $category->getName();
    }
}

或者更符合原始代码(并且数据库工作量减少),您可以尝试使用此过滤器:

->addFieldToFilter('is_active', 1)