Получение разных идентификаторов товаров для разных категорий

Я пытаюсь добавить ссылку на страницы продукта моего сайта и перенаправить пользователей в зависимости от категории, к которой принадлежит продукт. Например, у меня есть стулья категории, у которых есть Идентификатор категории 39, и у меня есть другие столы категории, для которых идентификатор категории 52.

Теперь моя проблема с описанным выше сценарием заключается в том, что когда я перехожу на страницу продукта через страницы категорий, я получаю вышеупомянутые идентификаторы категорий, и URL-адрес будет

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

но когда я пытаюсь найти продукт прямо из окна поиска и перейти на страницу продукта, URL становится

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

идентификатор категории становится равным 2, и это происходит с каждой категорией, и он показывает имя категории в качестве категории по умолчанию, когда я захожу на страницу продукта через окно поиска. Как я могу решить это? Пожалуйста, дайте мне знать, если есть какой-либо параметр, который не изменяется на странице продукта, который может позволить мне отображать контент на основе категории, к которой принадлежит продукт.

1 ответ

Вы можете заставить magento установить категорию, добавив наблюдателя на catalog_controller_product_view:

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

Другие вопросы по тегам