Skip to content

Commit 910e300

Browse files
authored
Merge pull request #839 from magento-commerce/remove-dependency
Removed dependency on Meta_Catalog from Meta_Sales
2 parents b701c46 + fd02155 commit 910e300

File tree

5 files changed

+35
-13
lines changed

5 files changed

+35
-13
lines changed

app/code/Meta/Conversion/composer.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@
55
"require": {
66
"php": "~7.4||~8.1.0||~8.2.0||~8.3.0",
77
"magento/framework": "*",
8+
"magento/module-bundle": "*",
89
"magento/module-catalog": "*",
910
"magento/module-configurable-product": "*",
1011
"magento/module-checkout": "*",
1112
"magento/module-customer": "*",
13+
"magento/module-directory": "*",
14+
"magento/module-grouped-product": "*",
1215
"magento/module-sales": "*",
1316
"magento/module-store": "*",
1417
"magento/module-quote": "*",

app/code/Meta/Conversion/etc/module.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
33
<module name="Meta_Conversion">
44
<sequence>
5+
<module name="Magento_Bundle"/>
56
<module name="Magento_Catalog"/>
67
<module name="Magento_ConfigurableProduct"/>
78
<module name="Magento_Checkout"/>
89
<module name="Magento_Customer"/>
910
<module name="Magento_Directory"/>
11+
<module name="Magento_GroupedProduct"/>
1012
<module name="Magento_Sales"/>
1113
<module name="Magento_Store"/>
1214
<module name="Magento_Quote"/>

app/code/Meta/Sales/Model/Mapper/OrderItemMapper.php

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525
use Magento\Catalog\Model\ProductRepository;
2626
use Magento\ConfigurableProduct\Model\Product\Type\Configurable as ConfigurableType;
2727
use Magento\Framework\Exception\LocalizedException;
28+
use Magento\Framework\Exception\NoSuchEntityException;
2829
use Magento\Sales\Api\Data\OrderItemInterfaceFactory;
2930
use Magento\Sales\Model\Order\Item as OrderItem;
3031
use Meta\BusinessExtension\Helper\GraphAPIAdapter;
3132
use Meta\BusinessExtension\Model\System\Config as SystemConfig;
32-
use Meta\Catalog\Helper\Product\Identifier as ProductIdentifier;
3333
use Psr\Log\LoggerInterface;
3434

3535
/**
@@ -47,11 +47,6 @@ class OrderItemMapper
4747
*/
4848
private GraphAPIAdapter $graphAPIAdapter;
4949

50-
/**
51-
* @var ProductIdentifier
52-
*/
53-
private ProductIdentifier $productIdentifier;
54-
5550
/**
5651
* @var ProductRepository
5752
*/
@@ -76,7 +71,6 @@ class OrderItemMapper
7671
* @param SystemConfig $systemConfig
7772
* @param GraphAPIAdapter $graphAPIAdapter
7873
* @param LoggerInterface $logger
79-
* @param ProductIdentifier $productIdentifier
8074
* @param ProductRepository $productRepository
8175
* @param ConfigurableType $configurableType
8276
* @param OrderItemInterfaceFactory $orderItemFactory
@@ -85,20 +79,35 @@ public function __construct(
8579
SystemConfig $systemConfig,
8680
GraphAPIAdapter $graphAPIAdapter,
8781
LoggerInterface $logger,
88-
ProductIdentifier $productIdentifier,
8982
ProductRepository $productRepository,
9083
ConfigurableType $configurableType,
9184
OrderItemInterfaceFactory $orderItemFactory
9285
) {
9386
$this->systemConfig = $systemConfig;
9487
$this->graphAPIAdapter = $graphAPIAdapter;
9588
$this->logger = $logger;
96-
$this->productIdentifier = $productIdentifier;
9789
$this->productRepository = $productRepository;
9890
$this->configurableType = $configurableType;
9991
$this->orderItemFactory = $orderItemFactory;
10092
}
10193

94+
/**
95+
* Fetch product by retailer id and identifier attribute
96+
*
97+
* @param string|int $retailerId
98+
* @return ProductInterface|bool
99+
* @throws NoSuchEntityException
100+
*/
101+
private function getProductByFacebookRetailerId($retailerId)
102+
{
103+
try {
104+
return $this->productRepository->get($retailerId);
105+
} catch (NoSuchEntityException $e) {
106+
// Product not found
107+
return $this->productRepository->getById($retailerId);
108+
}
109+
}
110+
102111
/**
103112
* Map facebook order item data to magento order item
104113
*
@@ -109,7 +118,17 @@ public function __construct(
109118
*/
110119
public function map(array $item, int $storeId): OrderItem
111120
{
112-
$product = $this->productIdentifier->getProductByFacebookRetailerId($item['retailer_id']);
121+
try {
122+
$product = $this->getProductByFacebookRetailerId($item['retailer_id']);
123+
} catch (NoSuchEntityException $e) {
124+
throw new LocalizedException(
125+
__(
126+
'Failed to map order item to Magento product: %1',
127+
$e->getMessage()
128+
)
129+
);
130+
}
131+
113132
$productInfo = $this->getProductInfo($item['product_id'], $storeId);
114133

115134
$quantity = $item['quantity'];

app/code/Meta/Sales/composer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
"magento/module-shipping": "*",
2323
"magento/module-newsletter": "*",
2424
"magento/module-tax": "*",
25-
"meta/module-business-extension": "*",
26-
"meta/module-catalog": "*"
25+
"meta/module-business-extension": "*"
2726
},
2827
"license": "Apache-2.0",
2928
"autoload": {

app/code/Meta/Sales/etc/module.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
<module name="Magento_Shipping"/>
2121
<module name="Magento_Webapi"/>
2222
<module name="Meta_BusinessExtension"/>
23-
<module name="Meta_Catalog"/>
2423
<module name="Magento_OfflineShipping"/>
2524
<module name="Taxjar_SalesTax"/>
2625
</sequence>

0 commit comments

Comments
 (0)