From 76eb37bebbbc05e9aa56e5bc68bcde12986ef669 Mon Sep 17 00:00:00 2001 From: Romain Ruaud Date: Tue, 1 Mar 2016 12:19:03 +0100 Subject: [PATCH] Fix categories that were not indexed properly --- .../Mapping/Catalog/Eav/Abstract.php | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) 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) {