Skip to content

Commit f0799ec

Browse files
committed
MC-42795: GraphQl products query layered navigation filters return incorrect child categories list
1 parent 419dd44 commit f0799ec

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

app/code/Magento/CatalogGraphQl/DataProvider/Product/LayeredNavigation/Builder/Aggregations/Category/IncludeDirectChildrenOnly.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,9 @@ private function filterBucketValues(
148148
$category->setStoreId($storeId);
149149
$childrenIds = $category->getChildren();
150150
if ($childrenIds) {
151-
$categoryChildIds = array_merge($categoryChildIds, explode(',', $childrenIds));
151+
$categoryChildIds[] = explode(',', $childrenIds);
152152
}
153+
$categoryChildIds = array_merge([], ...$categoryChildIds);
153154
}
154155
foreach ($categoryBucketValues as $key => $bucketValue) {
155156
$categoryId = (int)$bucketValue->getValue();

app/code/Magento/CatalogGraphQl/DataProvider/Product/LayeredNavigation/Builder/Category.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use Magento\Framework\Api\Search\BucketInterface;
1717
use Magento\Framework\App\ResourceConnection;
1818
use Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\Formatter\LayerFormatter;
19-
use Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\Builder\Aggregations\Category\IncludeDirectChildrenOnly;
19+
use Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\Builder\Aggregations;
2020

2121
/**
2222
* @inheritdoc
@@ -64,7 +64,7 @@ class Category implements LayerBuilderInterface
6464
private $layerFormatter;
6565

6666
/**
67-
* @var IncludeDirectChildrenOnly
67+
* @var Aggregations\Category\IncludeDirectChildrenOnly
6868
*/
6969
private $includeDirectChildrenOnly;
7070

@@ -74,15 +74,15 @@ class Category implements LayerBuilderInterface
7474
* @param RootCategoryProvider $rootCategoryProvider
7575
* @param ResourceConnection $resourceConnection
7676
* @param LayerFormatter $layerFormatter
77-
* @param IncludeDirectChildrenOnly $includeDirectChildrenOnly
77+
* @param Aggregations\Category\IncludeDirectChildrenOnly $includeDirectChildrenOnly
7878
*/
7979
public function __construct(
8080
CategoryAttributeQuery $categoryAttributeQuery,
8181
CategoryAttributesMapper $attributesMapper,
8282
RootCategoryProvider $rootCategoryProvider,
8383
ResourceConnection $resourceConnection,
8484
LayerFormatter $layerFormatter,
85-
IncludeDirectChildrenOnly $includeDirectChildrenOnly
85+
Aggregations\Category\IncludeDirectChildrenOnly $includeDirectChildrenOnly
8686
) {
8787
$this->categoryAttributeQuery = $categoryAttributeQuery;
8888
$this->attributesMapper = $attributesMapper;

app/code/Magento/CatalogGraphQl/Model/Resolver/Aggregations.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
namespace Magento\CatalogGraphQl\Model\Resolver;
99

1010
use Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\LayerBuilder;
11-
use Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\Builder\Aggregations\Category\IncludeDirectChildrenOnly;
11+
use Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\Builder\Aggregations\Category;
1212
use Magento\Directory\Model\PriceCurrency;
1313
use Magento\Framework\App\ObjectManager;
1414
use Magento\Framework\GraphQl\Config\Element\Field;
@@ -37,21 +37,21 @@ class Aggregations implements ResolverInterface
3737
private $priceCurrency;
3838

3939
/**
40-
* @var IncludeDirectChildrenOnly
40+
* @var Category\IncludeDirectChildrenOnly
4141
*/
4242
private $includeDirectChildrenOnly;
4343

4444
/**
4545
* @param \Magento\CatalogGraphQl\Model\Resolver\Layer\DataProvider\Filters $filtersDataProvider
4646
* @param LayerBuilder $layerBuilder
4747
* @param PriceCurrency $priceCurrency
48-
* @param IncludeDirectChildrenOnly $includeDirectChildrenOnly
48+
* @param Category\IncludeDirectChildrenOnly $includeDirectChildrenOnly
4949
*/
5050
public function __construct(
5151
\Magento\CatalogGraphQl\Model\Resolver\Layer\DataProvider\Filters $filtersDataProvider,
5252
LayerBuilder $layerBuilder,
5353
PriceCurrency $priceCurrency = null,
54-
IncludeDirectChildrenOnly $includeDirectChildrenOnly = null
54+
Category\IncludeDirectChildrenOnly $includeDirectChildrenOnly = null
5555
) {
5656
$this->filtersDataProvider = $filtersDataProvider;
5757
$this->layerBuilder = $layerBuilder;

0 commit comments

Comments
 (0)