Skip to content

Commit 74411c0

Browse files
committed
MAGE-839 Add sanity check to virtual replica flag in sort config
1 parent ce5838f commit 74411c0

File tree

4 files changed

+14
-7
lines changed

4 files changed

+14
-7
lines changed

Helper/ConfigHelper.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Algolia\AlgoliaSearch\Helper;
44

5+
use Algolia\AlgoliaSearch\Model\Product\ReplicaManager;
56
use Magento;
67
use Magento\Customer\Model\ResourceModel\Group\Collection as GroupCollection;
78
use Magento\Directory\Model\Currency as DirCurrency;
@@ -1166,7 +1167,7 @@ public function getSortingIndices(
11661167
$attrsToReturn[] = $attr;
11671168
}
11681169
}
1169-
1170+
11701171
if ($useCache) {
11711172
$this->_sortingIndices[$storeId] = $attrsToReturn;
11721173
}
@@ -1868,7 +1869,7 @@ public function useVirtualReplica(?int $storeId = null): bool
18681869
return (bool) count(array_filter(
18691870
$this->getSorting($storeId),
18701871
function ($sort) {
1871-
return $sort['virtualReplica'];
1872+
return $sort[ReplicaManager::SORT_KEY_VIRTUAL_REPLICA];
18721873
}
18731874
));
18741875
}

Helper/Entity/ProductHelper.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Algolia\AlgoliaSearch\Helper\Entity\Product\PriceManager;
1616
use Algolia\AlgoliaSearch\Helper\Image as ImageHelper;
1717
use Algolia\AlgoliaSearch\Helper\Logger;
18+
use Algolia\AlgoliaSearch\Model\Product\ReplicaManager;
1819
use Magento\Bundle\Model\Product\Type as BundleProductType;
1920
use Magento\Catalog\Model\Product;
2021
use Magento\Catalog\Model\Product\Attribute\Source\Status;
@@ -1425,7 +1426,7 @@ protected function decorateReplicasSetting(array $sortingIndices): array {
14251426
return array_map(
14261427
function($sort) {
14271428
$replica = $sort['name'];
1428-
return !! $sort['virtualReplica']
1429+
return !! $sort[ReplicaManager::SORT_KEY_VIRTUAL_REPLICA]
14291430
? "virtual($replica)"
14301431
: $replica;
14311432
},

Model/Product/ReplicaManager.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ class ReplicaManager implements ReplicaManagerInterface
3737
public const REPLICA_TRANSFORM_MODE_VIRTUAL = 2;
3838
public const REPLICA_TRANSFORM_MODE_ACTUAL = 3;
3939

40+
public const SORT_KEY_VIRTUAL_REPLICA = 'virtualReplica';
41+
4042
protected const _DEBUG = true;
4143

4244
protected array $_algoliaReplicaConfig = [];
@@ -151,8 +153,8 @@ function ($sort) use ($mode) {
151153
$replica = $sort['name'];
152154
if (
153155
$mode === self::REPLICA_TRANSFORM_MODE_VIRTUAL
154-
|| array_key_exists('virtualReplica', $sort)
155-
&& $sort['virtualReplica']
156+
|| array_key_exists(self::SORT_KEY_VIRTUAL_REPLICA, $sort)
157+
&& $sort[self::SORT_KEY_VIRTUAL_REPLICA]
156158
&& $mode === self::REPLICA_TRANSFORM_MODE_ACTUAL
157159
) {
158160
$replica = "virtual($replica)";
@@ -300,7 +302,8 @@ function($replica) use ($replicas) {
300302
foreach ($replicaDetails as $replica) {
301303
$replicaName = $replica['name'];
302304
// Virtual replicas - relevant sort
303-
if ($replica['virtualReplica']) {
305+
if (array_key_exists(self::SORT_KEY_VIRTUAL_REPLICA, $replica)
306+
&& $replica[self::SORT_KEY_VIRTUAL_REPLICA]) {
304307
$customRanking = array_key_exists('customRanking', $primaryIndexSettings)
305308
? $primaryIndexSettings['customRanking']
306309
: [];

Model/Source/Sorts.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace Algolia\AlgoliaSearch\Model\Source;
44

5+
use Algolia\AlgoliaSearch\Model\Product\ReplicaManager;
6+
57
/**
68
* Algolia custom sort order field
79
*/
@@ -33,7 +35,7 @@ protected function getTableData()
3335
'sortLabel' => [
3436
'label' => 'Label',
3537
],
36-
'virtualReplica' => [
38+
ReplicaManager::SORT_KEY_VIRTUAL_REPLICA => [
3739
'label' => 'Enable Virtual Replica?',
3840
'values' => ['0' => __('No'), '1' => __('Yes')],
3941
],

0 commit comments

Comments
 (0)