Skip to content

Commit 33e7856

Browse files
authored
Merge pull request magento#1272 from magento-engcom/MSI-1271
Reservations created twice for Configurable Products Virtual child
2 parents 33d9c0e + 3d4c254 commit 33e7856

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

app/code/Magento/InventoryShipping/Model/InventoryRequestFromInvoiceFactory.php

+16-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Magento\InventorySourceSelectionApi\Api\Data\ItemRequestInterfaceFactory;
1616
use Magento\Sales\Api\Data\InvoiceInterface;
1717
use Magento\Sales\Api\Data\InvoiceItemInterface;
18+
use Magento\Sales\Model\Order\Invoice\Item as InvoiceItemModel;
1819
use Magento\Sales\Api\Data\OrderItemInterface;
1920
use Traversable;
2021

@@ -89,7 +90,7 @@ private function getSelectionRequestItems(Traversable $invoiceItems): array
8990
{
9091
$selectionRequestItems = [];
9192
foreach ($invoiceItems as $invoiceItem) {
92-
if (!$invoiceItem->getOrderItem()->getIsVirtual()) {
93+
if (!$this->canProcessInvoiceItem($invoiceItem)) {
9394
continue;
9495
}
9596

@@ -106,6 +107,20 @@ private function getSelectionRequestItems(Traversable $invoiceItems): array
106107
return $selectionRequestItems;
107108
}
108109

110+
/**
111+
* @param InvoiceItemModel $invoiceItem
112+
* @return bool
113+
*/
114+
private function canProcessInvoiceItem(InvoiceItemModel $invoiceItem): bool
115+
{
116+
$orderItem = $invoiceItem->getOrderItem();
117+
if ($orderItem->isDeleted() || $orderItem->getParentItemId() || !$orderItem->getIsVirtual()) {
118+
return false;
119+
}
120+
121+
return true;
122+
}
123+
109124
/**
110125
* @param OrderItemInterface $item
111126
* @param string|int|float $qty

0 commit comments

Comments
 (0)