Skip to content

Commit 111781b

Browse files
committed
ACP2E-316: Some product are missed from layered navigation with manually configured price ranges
1 parent cfa51be commit 111781b

File tree

2 files changed

+8
-9
lines changed
  • app/code/Magento/Elasticsearch/SearchAdapter/Aggregation/Builder
  • lib/internal/Magento/Framework/Search/Dynamic/Algorithm

2 files changed

+8
-9
lines changed

app/code/Magento/Elasticsearch/SearchAdapter/Aggregation/Builder/Dynamic.php

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@ public function build(
4646
/** @var DynamicBucket $bucket */
4747
$algorithm = $this->algorithmRepository->get($bucket->getMethod(), ['dataProvider' => $dataProvider]);
4848
$data = $algorithm->getItems($bucket, $dimensions, $this->getEntityStorage($queryResult));
49-
$stats = $queryResult['aggregations'][$bucket->getName()] ?? [];
50-
return $this->prepareData($data, $stats);
49+
return $this->prepareData($data);
5150
}
5251

5352
/**
@@ -74,17 +73,12 @@ private function getEntityStorage(array $queryResult)
7473
* Prepare result data
7574
*
7675
* @param array $data
77-
* @param array $stats
7876
* @return array
7977
*/
80-
private function prepareData(array $data, array $stats): array
78+
private function prepareData($data)
8179
{
8280
$resultData = [];
83-
foreach ($data as $key => $value) {
84-
if (!isset($data[$key+1])) {
85-
$value['to'] = !isset($stats['max']) ? $value['to'] : $stats['max'];
86-
$value['to'] += 0.01;
87-
}
81+
foreach ($data as $value) {
8882
$rangeName = "{$value['from']}_{$value['to']}";
8983
$value['value'] = $rangeName;
9084
$resultData[$rangeName] = $value;

lib/internal/Magento/Framework/Search/Dynamic/Algorithm/Manual.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ public function getItems(
4949
$dbRanges = $this->processRange($dbRanges, $options['max_intervals_number']);
5050
$data = $this->dataProvider->prepareData($range, $dbRanges);
5151

52+
$aggregations = $this->dataProvider->getAggregations($entityStorage);
53+
if ($aggregations['max']) {
54+
$data[array_key_last($data)]['to'] = $aggregations['max'] + 0.01;
55+
}
56+
5257
return $data;
5358
}
5459

0 commit comments

Comments
 (0)