Многоуровневые навигационные фильтры Magento для сгруппированных продуктов


В нескольких словах - проблема такая же, как и в этом вопросе https://stackoverflow.com/questions/16718129/magento-layered-navigation-configurable-products-multiple-filters-active-iss

У нас есть продукты (настраиваемые /сгруппированные/связки), с которыми связаны простые продукты. Что связанные продукты имеют собственные атрибуты, а настраиваемые - свои собственные.

Многоуровневая навигация позволяет получить все доступные параметры для связанных продуктов и добавить их в родительский продукт, поэтому, когда мы получаем различные комбинации фильтров, мы можем установить параметры для несуществующих простых продуктов

Пример:

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

Таким образом, мы можем проверить фильтры Страна = США И город = Москва, и 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

Таким образом, для этого выбора США + Москва это показало бы результат продукта GP2, потому что он связал простые объекты, у которых есть значения в атрибутах для США и Москвы, но на самом деле ни один простой не выбрал США + Москву одновременно, поэтому показывать GP2 для таких фильтров является ошибкой

Есть ли какие-либо расширения/идеи, как это решить?

Только одна идея, которая приходит мне в голову, - это добавить в каталог_продукт_индекс_еав дополнительный столбец 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

Таким образом, здесь мы можем добавить дополнительное условие, что все атрибуты в строке должны иметь одинаковый связанный артикул

Может быть, кто-то знает готовые решения для этого или у вас есть какие-либо дополнительные идеи? Может быть, хочешь обсудить это?

Любые идеи/решения/мнения приветствуются:)

Author: Community, 2014-03-26

1 answers

Похоже, это работает так, как я описал. Только что разработал расширение, которое делает это. Сейчас мы тестируем его, но мы будем тестировать только на сгруппированных продуктах, потому что мы не используем другие типы. Действительно, похоже, что он должен работать не только с сгруппированными продуктами.

 1
Author: Sergey, 2015-03-27 13:44:09