Magento - многоуровневая навигация, настраиваемые продукты, активная проблема с несколькими фильтрами

Скажем, у меня есть один настраиваемый продукт в магазине Magento (1.7) "T-Shirt-A", который поставляется в Red (размеры 1,2) и Black (размер 2).

В многоуровневой навигации, если я выбираю "Черный" и "Размер 1"

  • Я ХОЧУ не видеть результатов - потому что нет простых продуктов, доступных в "Черном" и "Размер 1".
  • ВМЕСТО ВИДЕТЬ "T-Shirt-A", потому что он поставляется в черном и в размере 1 (но ни один связанный простой продукт не отвечает обоим критериям)

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

Ответы

Ответ 1

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

Чтобы заставить его работать так, как вы хотите, вам придется переработать способ индексирования значений EAV для настраиваемых продуктов и многоуровневой навигации (Mage_CatalogIndex_Model_Indexer_Eav) и способа их получения и использования для фильтрации (Mage_Catalog_Model_Layer_Filter_Attribute)