Magento分层产品的分层导航过滤器

时间:2014-03-26 16:36:13

标签: magento entity-attribute-value magento-1.8 layered-navigation

简而言之 - 问题与此问题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

可能有人知道现成的解决方案还是有其他想法?也许想讨论这个?

欢迎每一个想法/解决方案/意见:)

1 个答案:

答案 0 :(得分:0)

看起来它以我描述的方式工作 刚刚开发出这样做的扩展..现在我们测试它,但我们只测试分组产品,因为我们没有使用其他类型。真的看起来它不仅必须与分组......

一起工作