Skip to content

Commit d8ccc0f

Browse files
author
Oleksandr Gorkun
committed
MAGETWO-59163: Category product count incorporating products with visibility set to search only
1 parent fcf58a3 commit d8ccc0f

File tree

1 file changed

+11
-20
lines changed
  • app/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext

1 file changed

+11
-20
lines changed

app/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext/Collection.php

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ public function setFilterBuilder(\Magento\Framework\Api\FilterBuilder $object)
254254
* Apply attribute filter to facet collection
255255
*
256256
* @param string $field
257-
* @param null $condition
257+
* @param null|string|array $condition
258258
* @return $this
259259
*/
260260
public function addFieldToFilter($field, $condition = null)
@@ -265,30 +265,21 @@ public function addFieldToFilter($field, $condition = null)
265265

266266
$this->getSearchCriteriaBuilder();
267267
$this->getFilterBuilder();
268-
if (!is_array($condition) || !in_array(key($condition), ['from', 'to'])) {
269-
$this->filterBuilder->setField($field);
270-
$this->filterBuilder->setValue($condition);
271-
$this->searchCriteriaBuilder->addFilter($this->filterBuilder->create());
272-
} else {
273-
if (empty($condition['from']) && empty($condition['to'])) {
274-
$this->filterBuilder->setField($field);
275-
$this->filterBuilder->setValue($condition);
276-
$this->filterBuilder->setConditionType('in');
277-
$this->searchCriteriaBuilder->addFilter(
278-
$this->filterBuilder->create()
279-
);
280-
}
268+
if (is_array($condition)
269+
&& in_array(key($condition), ['from', 'to'], true)
270+
) {
281271
if (!empty($condition['from'])) {
282-
$this->filterBuilder->setField("{$field}.from");
283-
$this->filterBuilder->setValue($condition['from']);
284-
$this->searchCriteriaBuilder->addFilter($this->filterBuilder->create());
272+
$this->addFieldToFilter("{$field}.from", $condition['from']);
285273
}
286274
if (!empty($condition['to'])) {
287-
$this->filterBuilder->setField("{$field}.to");
288-
$this->filterBuilder->setValue($condition['to']);
289-
$this->searchCriteriaBuilder->addFilter($this->filterBuilder->create());
275+
$this->addFieldToFilter("{$field}.to", $condition['to']);
290276
}
277+
} else {
278+
$this->filterBuilder->setField($field);
279+
$this->filterBuilder->setValue($condition);
280+
$this->searchCriteriaBuilder->addFilter($this->filterBuilder->create());
291281
}
282+
292283
return $this;
293284
}
294285

0 commit comments

Comments
 (0)