【发布时间】:2014-03-26 16:36:13
【问题描述】:
简而言之-问题与此问题Magento - Layered navigation, configurable products, multiple filters active issue中的相同
我们有产品(可配置/分组/捆绑),其中链接了简单的产品。 链接的产品有自己的属性,可配置的也有自己的。
分层导航获取链接产品的所有可用选项并将它们添加到父产品中,因此当我们获得不同的过滤器组合时,我们可以为不存在的简单产品设置选项
例子:
SKU | Type | Country | City | Linked Skus
--------------------------------------------------------
SP1 | Simple | USA | NY | -
SP2 | Simple | USA | LA | -
SP3 | Simple | Russia | Moscow | -
SP4 | Simple | Russia | St. Pitersburg | -
GP1 | Grouped | - | - | SP1, SP2
GP2 | Grouped | - | - | SP1, SP3, SP4
通过这种方式,我们可以检查过滤器 Country = USA AND City = Moscow,magento 将向我们显示产品 GP2 可用于此过滤器组合。
原因是在索引表 catalog_product_index_eav 中会出现如下内容:
SKU | Attribute | Value
--------------------------------
GP1 | Country | USA
GP1 | City | NY
GP1 | City | LA
GP2 | Country | USA
GP2 | Country | Russia
GP2 | City | NY
GP2 | City | Moscow
GP2 | City | St. Pitersburg
所以对于这个选择 USA + Moscow,它会显示结果产品 GP2,因为它已经链接了简单的,在美国和莫斯科的属性中具有值,但实际上没有一个简单同时选择 USA + Moscow,所以显示 GP2这样的过滤器是错误的
是否有任何扩展/想法如何解决这个问题?
我想到的唯一一个想法是在 catalog_product_index_eav 附加列中添加linked_id,对于简单的将其放入零值或简单的 entity_id 值,但对于分组/可配置等,为每个生成索引链接简单 + 父属性值。
在这个例子中,它看起来像:
SKU | Attribute | Linked Sku | Value
----------------------------------------
GP1 | Country | SP1 | USA
GP1 | Country | SP2 | USA
GP1 | City | SP1 | NY
GP1 | City | SP2 | LA
GP2 | Country | SP1 | USA
GP2 | Country | SP3 | Russia
GP2 | Country | SP4 | Russia
GP2 | City | SP1 | NY
GP2 | City | SP3 | Moscow
GP2 | City | SP4 | St. Pitersburg
所以在这里我们可以添加附加条件,即行中的所有属性必须具有相同的 Linked Sku
可能有人知道现成的解决方案或有任何其他想法?也许想讨论这个?
欢迎每个想法/解决方案/意见:)
【问题讨论】:
标签: magento entity-attribute-value magento-1.8 layered-navigation