Skip to content

Commit b8cbdc0

Browse files
committed
ACP2E-2620: In admin, the "Shopping Cart" on left side doesn't get updated when selecting the items and "Move to Shopping Cart" from the right side
- Changed the implementation based on QA comments.
1 parent f03d836 commit b8cbdc0

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

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

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use Magento\Store\Model\StoreManagerInterface;
2121
use Psr\Log\LoggerInterface;
2222
use Magento\Quote\Model\Quote;
23+
use Magento\Framework\App\Request\Http as HttpRequest;
2324

2425
/**
2526
* Order create model
@@ -264,6 +265,11 @@ class Create extends \Magento\Framework\DataObject implements \Magento\Checkout\
264265
*/
265266
private $orderRepositoryInterface;
266267

268+
/**
269+
* @var HttpRequest
270+
*/
271+
private $request;
272+
267273
/**
268274
* @param \Magento\Framework\ObjectManagerInterface $objectManager
269275
* @param \Magento\Framework\Event\ManagerInterface $eventManager
@@ -298,6 +304,7 @@ class Create extends \Magento\Framework\DataObject implements \Magento\Checkout\
298304
* @param StoreManagerInterface $storeManager
299305
* @param CustomAttributeListInterface|null $customAttributeList
300306
* @param OrderRepositoryInterface|null $orderRepositoryInterface
307+
* @param HttpRequest|null $request
301308
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
302309
*/
303310
public function __construct(
@@ -333,7 +340,8 @@ public function __construct(
333340
ExtensibleDataObjectConverter $dataObjectConverter = null,
334341
StoreManagerInterface $storeManager = null,
335342
CustomAttributeListInterface $customAttributeList = null,
336-
OrderRepositoryInterface $orderRepositoryInterface = null
343+
OrderRepositoryInterface $orderRepositoryInterface = null,
344+
HttpRequest $request = null
337345
) {
338346
$this->_objectManager = $objectManager;
339347
$this->_eventManager = $eventManager;
@@ -372,6 +380,8 @@ public function __construct(
372380
->get(CustomAttributeListInterface::class);
373381
$this->orderRepositoryInterface = $orderRepositoryInterface ?: ObjectManager::getInstance()
374382
->get(OrderRepositoryInterface::class);
383+
$this->request = $request ?: ObjectManager::getInstance()
384+
->get(HttpRequest::class);
375385
}
376386

377387
/**
@@ -893,7 +903,7 @@ public function moveQuoteItem($item, $moveTo, $qty)
893903
$cartItem->setPrice($item->getProduct()->getPrice());
894904
$this->_needCollectCart = true;
895905
$removeItem = true;
896-
$this->removeCartTransferredItems();
906+
$this->removeCartTransferredItemsAndUpdateQty($cartItem, $item->getId());
897907
}
898908
break;
899909
case 'wishlist':
@@ -2274,16 +2284,31 @@ private function formattedOptions(\Magento\Catalog\Model\Product $product, $buyR
22742284
}
22752285

22762286
/**
2277-
* Remove cart from transferred items.
2287+
* Remove cart from transferred items and update the qty.
22782288
*
2289+
* @param int|null|Item $cartItem
2290+
* @param int $itemId
22792291
* @return void
22802292
*/
2281-
private function removeCartTransferredItems()
2293+
private function removeCartTransferredItemsAndUpdateQty(int|null|Item $cartItem, int $itemId)
22822294
{
22832295
$removeCartTransferredItems = $this->getSession()->getTransferredItems() ?? [];
22842296
if (isset($removeCartTransferredItems['cart'])) {
2285-
unset($removeCartTransferredItems['cart']);
2297+
$removeTransferredItemKey = array_search($cartItem->getId(), $removeCartTransferredItems['cart']);
2298+
if ($removeCartTransferredItems['cart'][$removeTransferredItemKey]) {
2299+
$cartItem->clearMessage();
2300+
$cartItem->setHasError(false);
2301+
if (isset($this->request->get('item')[$itemId]['qty'])) {
2302+
$qty = $this->request->get('item')[$itemId]['qty'];
2303+
}
2304+
$cartItem->setQty($qty);
2305+
2306+
if ($cartItem->getHasError()) {
2307+
throw new LocalizedException(__($cartItem->getMessage()));
2308+
}
2309+
unset($removeCartTransferredItems['cart'][$removeTransferredItemKey]);
2310+
}
2311+
$this->getSession()->setTransferredItems($removeCartTransferredItems);
22862312
}
2287-
$this->getSession()->setTransferredItems($removeCartTransferredItems);
22882313
}
22892314
}

0 commit comments

Comments
 (0)