在magento 1.8.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,就没有问题。
您应该只需将这两个部分添加到您的模块中,它就能完美运行。我最后还为这些儿童产品的评论页面做了一个。它本质上是相同的代码,有一些适应性。