Magento 1.8将产品子项重定向到父产品

时间:2014-02-16 02:52:14

标签: magento

在magento 1.8.1中,如何将子产品重定向到关联的父产品捆绑产品?

我发现以前版本的选项似乎不起作用。

例如,在搜索时点击子产品会将您带到显示所有可用选项的父项目。

1 个答案:

答案 0 :(得分:2)

昨天我写了一个简单的扩展,在1.8中完成了这个。为事件controller_action_predispatch

设置观察者

我的观察者文件看起来像这样

class CommerceExtensions_GroupedProductRedirect_Model_Observer extends Varien_Event_Observer
{  
  public function redirectProductView($observer)
  { 
    $id = Mage::app()->getRequest()->getParam('id');
    $product = Mage::getModel('catalog/product')->load($id);
    if($product->getTypeId() == 'simple' && $product->getVisibility() == 1){
      $parentIds = Mage::getModel('catalog/product_type_grouped')->getParentIdsByChild($product->getId()); 
      if(!empty($parentIds)){
        $parentProduct = Mage::getModel('catalog/product')->load($parentIds[0]);
        Mage::app()
          ->getResponse()
          ->setRedirect($parentProduct->getProductUrl(), 301)
          ->sendResponse();
      }
    }           
  }
}  

这就是我在config.xml中的内容

  <controller_action_predispatch_catalog_product_view>
    <observers>
      <commerceextensions_groupedproductredirect_observer>
        <class>CommerceExtensions_GroupedProductRedirect_Model_Observer</class>
        <method>redirectProductView</method>
      </commerceextensions_groupedproductredirect_observer>
    </observers>
  </controller_action_predispatch_catalog_product_view>

只有将子产品设置为“单独不可见”且它具有父组分组产品时,才会重定向。这很容易适应可配置或捆绑产品,我只是不在我自己的网站上使用这些类型,但只要你能获得父产品ID,就没有问题。

您应该只需将这两个部分添加到您的模块中,它就能完美运行。我最后还为这些儿童产品的评论页面做了一个。它本质上是相同的代码,有一些适应性。