Skip to content

Commit 3f2bb19

Browse files
Merge pull request #865 from pradeepkanaka/ADO-295/Add-fall-back-mechanism
[ADO-295] [Catalog] Add fallback mechanism for fetching parent product for incr…
2 parents d8af74a + 68e269a commit 3f2bb19

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

app/code/Meta/Catalog/Model/CatalogUpdateHandler.php

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
use Meta\BusinessExtension\Model\System\Config as SystemConfig;
2929
use Meta\BusinessExtension\Helper\GraphAPIAdapter;
3030
use Meta\Catalog\Model\Product\Feed\Method\BatchApi;
31+
use Magento\Catalog\Model\ProductRepository as MagentoProductRepository;
3132

3233
/**
3334
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
@@ -69,6 +70,11 @@ class CatalogUpdateHandler
6970
*/
7071
private ProductIdentifier $productIdentifier;
7172

73+
/**
74+
* @var MagentoProductRepository
75+
*/
76+
private MagentoProductRepository $magentoProductRepository;
77+
7278
/**
7379
* CatalogUpdateConsumer constructor
7480
*
@@ -79,6 +85,7 @@ class CatalogUpdateHandler
7985
* @param GraphAPIAdapter $graphAPIAdapter
8086
* @param BatchApi $batchApi
8187
* @param ProductIdentifier $productIdentifier
88+
* @param MagentoProductRepository $magentoProductRepository
8289
*/
8390
public function __construct(
8491
FBCatalogUpdateResourceModel $fbCatalogUpdateResourceModel,
@@ -87,7 +94,8 @@ public function __construct(
8794
ProductRepository $productRepository,
8895
GraphAPIAdapter $graphAPIAdapter,
8996
BatchApi $batchApi,
90-
ProductIdentifier $productIdentifier
97+
ProductIdentifier $productIdentifier,
98+
MagentoProductRepository $magentoProductRepository
9199
) {
92100
$this->fbCatalogUpdateResourceModel = $fbCatalogUpdateResourceModel;
93101
$this->fbeHelper = $fbeHelper;
@@ -96,6 +104,7 @@ public function __construct(
96104
$this->graphApiAdapter = $graphAPIAdapter;
97105
$this->batchApi = $batchApi;
98106
$this->productIdentifier = $productIdentifier;
107+
$this->magentoProductRepository = $magentoProductRepository;
99108
}
100109

101110
/**
@@ -213,6 +222,21 @@ private function processUpdates(Collection $productUpdates, $storeId, string $ca
213222
$parentProduct = $parentProducts->getItemById($productLinks[$product->getId()]);
214223
if ($parentProduct) {
215224
$product = $this->productRepository->loadParentProductData($product, $parentProduct);
225+
} else {
226+
try {
227+
$parentProduct = $this->magentoProductRepository->getById($productLinks[$product->getId()]);
228+
$product = $this->productRepository->loadParentProductData($product, $parentProduct);
229+
} catch (\Exception $e) {
230+
$this->fbeHelper->logException(
231+
$e,
232+
[
233+
'log_type' => 'error',
234+
'error_description' => 'Exception occured during loading parent product data',
235+
'product_id' => $product->getId(),
236+
'parent_product_id' => $productLinks[$product->getId()]
237+
]
238+
);
239+
}
216240
}
217241
}
218242

0 commit comments

Comments
 (0)