Skip to content

Commit 5b9aca2

Browse files
committed
ACP2E-2123: Issues with some pending crons that are not been executed
1 parent 4ad6c4c commit 5b9aca2

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

InventoryIndexer/Plugin/InventoryApi/ReindexAfterSourceItemsSavePlugin.php

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
use Magento\InventoryApi\Api\Data\SourceItemInterface;
1111
use Magento\InventoryApi\Api\SourceItemsSaveInterface;
12+
use Magento\InventoryCatalogApi\Api\DefaultSourceProviderInterface;
1213
use Magento\InventoryIndexer\Indexer\SourceItem\GetSourceItemIds;
1314
use Magento\InventoryIndexer\Indexer\SourceItem\SourceItemIndexer;
1415

@@ -27,14 +28,24 @@ class ReindexAfterSourceItemsSavePlugin
2728
*/
2829
private $sourceItemIndexer;
2930

31+
/**
32+
* @var DefaultSourceProviderInterface
33+
*/
34+
private $defaultSourceProvider;
35+
3036
/**
3137
* @param GetSourceItemIds $getSourceItemIds
3238
* @param SourceItemIndexer $sourceItemIndexer
39+
* @param DefaultSourceProviderInterface $defaultSourceProvider
3340
*/
34-
public function __construct(GetSourceItemIds $getSourceItemIds, SourceItemIndexer $sourceItemIndexer)
35-
{
41+
public function __construct(
42+
GetSourceItemIds $getSourceItemIds,
43+
SourceItemIndexer $sourceItemIndexer,
44+
DefaultSourceProviderInterface $defaultSourceProvider
45+
) {
3646
$this->getSourceItemIds = $getSourceItemIds;
3747
$this->sourceItemIndexer = $sourceItemIndexer;
48+
$this->defaultSourceProvider = $defaultSourceProvider;
3849
}
3950

4051
/**
@@ -49,9 +60,22 @@ public function afterExecute(
4960
$result,
5061
array $sourceItems
5162
) {
63+
$sourceItems = $this->sanitizeSources($sourceItems);
5264
$sourceItemIds = $this->getSourceItemIds->execute($sourceItems);
5365
if (count($sourceItemIds)) {
5466
$this->sourceItemIndexer->executeList($sourceItemIds);
5567
}
5668
}
69+
70+
private function sanitizeSources(array $sourceItems) : array
71+
{
72+
$result = [];
73+
$defaultCode = $this->defaultSourceProvider->getCode();
74+
foreach ($sourceItems as $item) {
75+
if ($item->getSourceCode() !== $defaultCode) {
76+
$result[] = $item;
77+
}
78+
}
79+
return $result;
80+
}
5781
}

0 commit comments

Comments
 (0)