简而言之 - 问题与这个问题相同Magento - 分层导航,可配置产品,多个过滤器活动问题
我们有产品(可配置/分组/捆绑),其中有链接的简单产品。链接的产品有自己的属性,而可配置的也有自己的。
分层导航获取链接产品的所有可用选项并将它们添加到父产品中,因此当我们获得不同的过滤器组合时,我们可以为不存在的简单产品设置选项
例子:
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 和莫斯科的属性中具有值,但实际上没有一个简单同时选择 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
可能有人知道为此准备好的解决方案或有任何其他想法吗?也许想讨论这个?
欢迎每个想法/解决方案/意见:)