3

In layered nav shop by manufacturer filter we want for bundles and configurable products only to be displayed on the catalog list where the parent SKU manufacturer matches the filter. Default magento will show other brands if they are a child of the bundle.

For instance, say you sell Sony TVs in bundles with Bose speakers. If you set your filter to Sony, you will see this bundle. Great, fine.

Now say you also in same electronics category sell just Bose speakers alone. So you set your filter to Bose, now you see all Bose speakers, but also the Sony bundle displays because there is a Bose child product in that bundle.

We want the filter to only filter the parent manufacturer site wide.

1 Answer 1

3

This is built-in behaviour that cannot be configured (see also this question: Inconsistent product attribute index: Duplicate entries in catalog_product_index_eav)

If you wanted to change this, you would need to override Mage_Catalog_Model_Resource_Product_Indexer_Eav_Abstract::_prepareRelationIndex() to do nothing, so that related products are not included in the filter index.

A rewrite of catalog/resource_product_indexer_eav_source with an empty _prepareRelationIndex() will probably do the trick.

Update

I needed this myself today and can confirm that it works.

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Stack_Catalog>
             <version>0.1.0</version>
        </Stack_Catalog>
    </modules>
    <global>
        <models>
            <catalog_resource>
                <rewrite>
                    <product_indexer_eav_source>Stack_Catalog_Model_Resource_Product_Indexer_Eav_Source</product_indexer_eav_source>
                </rewrite>
            </catalog_resource>
        </models>
    </global>
</config>

Model/Resource/Product/Indexer/Source.php

class Stack_Catalog_Model_Resource_Product_Indexer_Eav_Source
    extends Mage_Catalog_Model_Resource_Product_Indexer_Eav_Source
{
    /**
     * Prepare data index for product relations
     *
     * @param array $parentIds the parent entity ids limitation
     * @return Mage_Catalog_Model_Resource_Product_Indexer_Eav_Abstract
     */
    protected function _prepareRelationIndex($parentIds = null)
    {
        // changed to do nothing (bundle children attributes should not be used in filter)
        return $this;
    }
}
1
  • Unfortunately I already paid for a customization to my indexes. So I won't be able to test this out and accept answer. I will upvote the answer though.
    – ladle3000
    Commented Jul 1, 2015 at 13:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.