获取不同类别的不同产品ID

时间:2017-07-06 07:32:54

标签: url search magento-1.9 categories product

我正在尝试在我网站的产品页面上添加链接,并根据产品所属的类别重定向用户。例如,我有一个类别主席,其类别ID为39 ,我有另一个类别办公桌 类别ID为52

现在我对上述场景的问题是,当我通过类别页面进入产品页面时,我正确地获得了上述类别ID,并且URL将是

http://example.com/chairs/wood-chair.html

但是当我尝试直接从搜索框中搜索产品并从那里移动到产品页面时,网址就变为

http://example.com/wood-chair.html

类别ID变为2 ,每个类别都会出现这种情况,当我通过搜索框进入产品页面时,它会将类别名称显示为默认类别。我该如何解决这个问题?请告诉我,如果产品页面上有任何参数没有变化,我可以根据产品所属的类别显示内容。

1 个答案:

答案 0 :(得分:0)

您可以通过在catalog_controller_product_view上添加观察者来强制magento设置类别:

class My_Module_Model_Observer extends Mage_Core_Model_Observer
{
    public function addCategoryToBreadcrumbs(Varien_Event_Observer $observer)
    {
        if (Mage::registry('current_category')) {
            return;
        }

        $product = $observer->getProduct();

        $product->setDoNotUseCategoryId(false);
        $categoryIds = $product->getCategoryIds();

        if (count($categoryIds)) {
            $categories = Mage::getModel('catalog/category')->getCollection()
                ->addAttributeToFilter('entity_id', $categoryIds)
                ->addAttributeToFilter('is_active', 1);

            $categories->getSelect()->order('level DESC')->limit(1);

            Mage::register('current_category', $categories->getFirstItem());
        }
    }
}

完整代码:https://magento.stackexchange.com/questions/178268/add-category-path-to-breadcrumbs-on-product-view-page/178592#178592