Skip to content

Commit 87497f5

Browse files
committed
functionality fixes
1 parent fc6bebe commit 87497f5

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

app/code/Magento/Sales/Model/AdminOrder/Create.php

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2061,7 +2061,7 @@ private function removeTransferredItems(): void
20612061
}
20622062

20632063
/**
2064-
* Restore items that were transferred from from ordered items to their original sources (cart, wishlist, ...)
2064+
* Restore items that were transferred from ordered items to their original sources (cart, wishlist, ...)
20652065
*
20662066
* @param string $area
20672067
* @param \Magento\Quote\Model\Quote\Item[]|\Magento\Wishlist\Model\Item[] $items
@@ -2071,32 +2071,33 @@ private function removeTransferredItems(): void
20712071
private function restoreTransferredItem($area, $items, $product = null): bool
20722072
{
20732073
$transferredItems = $this->_session->getTransferredItems() ?? [];
2074+
if (!isset($transferredItems[$area])) {
2075+
return false;
2076+
}
2077+
$itemToRestoreId = null;
20742078
switch ($area) {
20752079
case 'wishlist':
2076-
if (!isset($transferredItems['wishlist'])) {
2077-
return false;
2078-
}
2079-
$transferredFromWishlist = array_intersect_key($items, $transferredItems['wishlist']);
2080-
if ($transferredFromWishlist) {
2081-
$wishlistItemId = array_key_first($transferredFromWishlist);
2082-
unset($transferredItems['wishlist'][$wishlistItemId]);
2083-
$this->_session->setTransferredItems($transferredItems);
2084-
return true;
2080+
$itemToRestore = array_intersect_key($items, $transferredItems['wishlist']);
2081+
if ($itemToRestore) {
2082+
$itemToRestoreId = array_key_first($itemToRestore);
20852083
}
20862084
break;
20872085
case 'cart':
20882086
$cart = $this->getCustomerCart();
20892087
$cartItem = $cart->getItemByProduct($product);
2090-
$transferredFromCart = $cartItem ? in_array($cartItem->getId(), $transferredItems['cart']) : false;
2091-
if ($transferredFromCart) {
2092-
unset($transferredItems['cart'][$cartItem->getItemId()]);
2093-
$this->_session->setTransferredItems($transferredItems);
2094-
return true;
2088+
$canBeRestored = $cartItem ? in_array($cartItem->getId(), $transferredItems['cart']) : false;
2089+
if ($canBeRestored) {
2090+
$itemToRestoreId = $cartItem->getItemId();
20952091
}
20962092
break;
20972093
default:
20982094
break;
20992095
}
2096+
if ($itemToRestoreId) {
2097+
unset($transferredItems[$area][$itemToRestoreId]);
2098+
$this->_session->setTransferredItems($transferredItems);
2099+
return true;
2100+
}
21002101
return false;
21012102
}
21022103

0 commit comments

Comments
 (0)