Skip to content

Commit 9fb7323

Browse files
committed
Fixes wrong condition for product list category filter
1 parent 6b7a9b3 commit 9fb7323

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

app/code/Magento/Catalog/Model/Api/SearchCriteria/CollectionProcessor/FilterProcessor/ProductCategoryFilter.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,14 @@ class ProductCategoryFilter implements CustomFilterInterface
2121
*/
2222
public function apply(Filter $filter, AbstractDb $collection)
2323
{
24-
$conditionType = $filter->getConditionType() ?: 'eq';
25-
$categoryFilter = [$conditionType => [$filter->getValue()]];
24+
$value = $filter->getValue();
25+
$conditionType = $filter->getConditionType() ?: 'in';
26+
if (($conditionType === 'in' || $conditionType === 'nin') && is_string($value)) {
27+
$value = explode(',', $value);
28+
} else {
29+
$value = [$value];
30+
}
31+
$categoryFilter = [$conditionType => $value];
2632

2733
/** @var Collection $collection */
2834
$collection->addCategoriesFilter($categoryFilter);

app/code/Magento/Catalog/Test/Unit/Model/Api/SearchCriteria/CollectionProcessor/FilterProcessor/ProductCategoryFilterTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public function testApply()
4040

4141
$collectionMock->expects($this->once())
4242
->method('addCategoriesFilter')
43-
->with(['condition' => ['value']]);
43+
->with(['in' => ['value']]);
4444

4545
$this->assertTrue($this->model->apply($filterMock, $collectionMock));
4646
}

0 commit comments

Comments
 (0)