diff --git a/src/app/code/community/Smile/ElasticSearch/Model/Resource/Engine/Elasticsearch/Mapping/Catalog/Eav/Abstract.php b/src/app/code/community/Smile/ElasticSearch/Model/Resource/Engine/Elasticsearch/Mapping/Catalog/Eav/Abstract.php index c2ecbce3..36e7590c 100644 --- a/src/app/code/community/Smile/ElasticSearch/Model/Resource/Engine/Elasticsearch/Mapping/Catalog/Eav/Abstract.php +++ b/src/app/code/community/Smile/ElasticSearch/Model/Resource/Engine/Elasticsearch/Mapping/Catalog/Eav/Abstract.php @@ -365,19 +365,21 @@ protected function _getAttributesById() $attributes = Mage::getResourceModel($this->_attributeCollectionModel) ->setEntityTypeFilter($entityType->getEntityTypeId()); - $conditions = array( - 'additional_table.is_searchable = 1', - 'additional_table.is_visible_in_advanced_search = 1', - 'additional_table.is_filterable > 0', - 'additional_table.is_filterable_in_search = 1', - 'additional_table.used_for_sort_by = 1', - 'additional_table.is_used_for_promo_rules', - $this->getConnection()->quoteInto('main_table.attribute_code = ?', 'status'), - $this->getConnection()->quoteInto('main_table.attribute_code = ?', 'visibility'), - ); - - $attributes->getSelect()->where(sprintf('(%s)', implode(' OR ', $conditions))); + if (method_exists($attributes, 'addToIndexFilter')) { + $conditions = array( + 'additional_table.is_searchable = 1', + 'additional_table.is_visible_in_advanced_search = 1', + 'additional_table.is_filterable > 0', + 'additional_table.is_filterable_in_search = 1', + 'additional_table.used_for_sort_by = 1', + 'additional_table.is_used_for_promo_rules', + $this->getConnection()->quoteInto('main_table.attribute_code = ?', 'status'), + $this->getConnection()->quoteInto('main_table.attribute_code = ?', 'visibility'), + ); + $attributes->getSelect()->where(sprintf('(%s)', implode(' OR ', $conditions))); + } + $this->_attributesById = array(); foreach ($attributes as $attribute) {