我有一个Magento商店,有2个简单的产品
和可配置的产品
分配了这些杯子。
红色和蓝色杯子在搜索中可见。
如果用户单击其中一个简单产品,则应打开可配置产品,但应预先选择正确的颜色。
我知道可以将一个简单的产品分配给多个可配置产品,因此如果找到两个匹配的可配置产品,我会记录一个异常,只需要接受第一个产品。
我想我必须抓住目录/产品/视图的predispatch事件,并以某种方式用可配置的产品替换简单的产品。
我现在如何预先配置正确的简单产品?
对此有优雅的解决方案吗?
答案 0 :(得分:4)
我找到了解决方案:
controller_action_predispatch_catalog_product_view
Mage::helper('catalog/product_view')->prepareAndRender()
(第三个参数)FLAG_NO_DISPATCH
来停止调度
醇>
答案 1 :(得分:0)
如果简单产品符合某些要求,一个想法就是重定向到可配置产品:
ps:如果您不想进行父产品查询,可以添加“redirect_sku”或“redirect_product_id”等新属性,以便直接在该产品上进行重定向
对于重定向,您应该使用事件catalog_controller_product_init_after
,如果前两个条件匹配,则将用户重定向到可配置产品。
ps:对于性能优化,您可以使用catalog_controller_product_init_before
来保存扩展且无用的Product :: load(),但它需要您构建自定义SQL查询以搜索父产品
告诉您是否需要一些代码示例