@@ -301,40 +301,41 @@ class Create extends \Magento\Framework\DataObject implements \Magento\Checkout\
301
301
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
302
302
*/
303
303
public function __construct (
304
- \Magento \Framework \ObjectManagerInterface $ objectManager ,
305
- \Magento \Framework \Event \ManagerInterface $ eventManager ,
306
- \Magento \Framework \Registry $ coreRegistry ,
307
- \Magento \Sales \Model \Config $ salesConfig ,
308
- \Magento \Backend \Model \Session \Quote $ quoteSession ,
309
- \Psr \Log \LoggerInterface $ logger ,
310
- \Magento \Framework \DataObject \Copy $ objectCopyService ,
311
- \Magento \Framework \Message \ManagerInterface $ messageManager ,
312
- Product \Quote \Initializer $ quoteInitializer ,
313
- \Magento \Customer \Api \CustomerRepositoryInterface $ customerRepository ,
314
- \Magento \Customer \Api \AddressRepositoryInterface $ addressRepository ,
315
- \Magento \Customer \Api \Data \AddressInterfaceFactory $ addressFactory ,
316
- \Magento \Customer \Model \Metadata \FormFactory $ metadataFormFactory ,
317
- \Magento \Customer \Api \GroupRepositoryInterface $ groupRepository ,
318
- \Magento \Framework \App \Config \ScopeConfigInterface $ scopeConfig ,
319
- \Magento \Sales \Model \AdminOrder \EmailSender $ emailSender ,
304
+ \Magento \Framework \ObjectManagerInterface $ objectManager ,
305
+ \Magento \Framework \Event \ManagerInterface $ eventManager ,
306
+ \Magento \Framework \Registry $ coreRegistry ,
307
+ \Magento \Sales \Model \Config $ salesConfig ,
308
+ \Magento \Backend \Model \Session \Quote $ quoteSession ,
309
+ \Psr \Log \LoggerInterface $ logger ,
310
+ \Magento \Framework \DataObject \Copy $ objectCopyService ,
311
+ \Magento \Framework \Message \ManagerInterface $ messageManager ,
312
+ Product \Quote \Initializer $ quoteInitializer ,
313
+ \Magento \Customer \Api \CustomerRepositoryInterface $ customerRepository ,
314
+ \Magento \Customer \Api \AddressRepositoryInterface $ addressRepository ,
315
+ \Magento \Customer \Api \Data \AddressInterfaceFactory $ addressFactory ,
316
+ \Magento \Customer \Model \Metadata \FormFactory $ metadataFormFactory ,
317
+ \Magento \Customer \Api \GroupRepositoryInterface $ groupRepository ,
318
+ \Magento \Framework \App \Config \ScopeConfigInterface $ scopeConfig ,
319
+ \Magento \Sales \Model \AdminOrder \EmailSender $ emailSender ,
320
320
\Magento \CatalogInventory \Api \StockRegistryInterface $ stockRegistry ,
321
- \Magento \Quote \Model \Quote \Item \Updater $ quoteItemUpdater ,
322
- \Magento \Framework \DataObject \Factory $ objectFactory ,
323
- \Magento \Quote \Api \CartRepositoryInterface $ quoteRepository ,
324
- \Magento \Customer \Api \AccountManagementInterface $ accountManagement ,
325
- \Magento \Customer \Api \Data \CustomerInterfaceFactory $ customerFactory ,
326
- \Magento \Customer \Model \Customer \Mapper $ customerMapper ,
327
- \Magento \Quote \Api \CartManagementInterface $ quoteManagement ,
328
- \Magento \Framework \Api \DataObjectHelper $ dataObjectHelper ,
329
- \Magento \Sales \Api \OrderManagementInterface $ orderManagement ,
330
- \Magento \Quote \Model \QuoteFactory $ quoteFactory ,
331
- array $ data = [],
332
- \Magento \Framework \Serialize \Serializer \Json $ serializer = null ,
333
- ExtensibleDataObjectConverter $ dataObjectConverter = null ,
334
- StoreManagerInterface $ storeManager = null ,
335
- CustomAttributeListInterface $ customAttributeList = null ,
336
- OrderRepositoryInterface $ orderRepositoryInterface = null
337
- ) {
321
+ \Magento \Quote \Model \Quote \Item \Updater $ quoteItemUpdater ,
322
+ \Magento \Framework \DataObject \Factory $ objectFactory ,
323
+ \Magento \Quote \Api \CartRepositoryInterface $ quoteRepository ,
324
+ \Magento \Customer \Api \AccountManagementInterface $ accountManagement ,
325
+ \Magento \Customer \Api \Data \CustomerInterfaceFactory $ customerFactory ,
326
+ \Magento \Customer \Model \Customer \Mapper $ customerMapper ,
327
+ \Magento \Quote \Api \CartManagementInterface $ quoteManagement ,
328
+ \Magento \Framework \Api \DataObjectHelper $ dataObjectHelper ,
329
+ \Magento \Sales \Api \OrderManagementInterface $ orderManagement ,
330
+ \Magento \Quote \Model \QuoteFactory $ quoteFactory ,
331
+ array $ data = [],
332
+ \Magento \Framework \Serialize \Serializer \Json $ serializer = null ,
333
+ ExtensibleDataObjectConverter $ dataObjectConverter = null ,
334
+ StoreManagerInterface $ storeManager = null ,
335
+ CustomAttributeListInterface $ customAttributeList = null ,
336
+ OrderRepositoryInterface $ orderRepositoryInterface = null
337
+ )
338
+ {
338
339
$ this ->_objectManager = $ objectManager ;
339
340
$ this ->_eventManager = $ eventManager ;
340
341
$ this ->_coreRegistry = $ coreRegistry ;
@@ -888,7 +889,12 @@ public function moveQuoteItem($item, $moveTo, $qty)
888
889
}
889
890
890
891
$ cartItems = $ cart ->getAllVisibleItems ();
891
- $ canBeRestored = (bool )$ this ->restoreTransferredItem ('cart ' , $ cartItems , $ product );
892
+ $ cartItemsToRestore = [];
893
+ foreach ($ cartItems as $ value ) {
894
+ $ cartItemsToRestore [$ value ->getData ('item_id ' )] = $ value ->getData ('item_id ' );
895
+ }
896
+ $ canBeRestored = $ this ->restoreTransferredItem ('cart ' , $ cartItemsToRestore );
897
+
892
898
if (!$ canBeRestored ) {
893
899
$ cartItem = $ cart ->addProduct ($ product , $ info );
894
900
if (is_string ($ cartItem )) {
@@ -939,7 +945,7 @@ public function moveQuoteItem($item, $moveTo, $qty)
939
945
$ this ->getSession ()->getStoreId ()
940
946
);
941
947
$ wishlistItems = $ wishlist ->getItemCollection ()->getItems ();
942
- $ canBeRestored = ( bool ) $ this ->restoreTransferredItem ('wishlist ' , $ wishlistItems, null );
948
+ $ canBeRestored = $ this ->restoreTransferredItem ('wishlist ' , $ wishlistItems );
943
949
if (!$ canBeRestored ) {
944
950
$ wishlist ->addNewItem ($ item ->getProduct (), $ info );
945
951
}
@@ -990,7 +996,7 @@ public function applySidebarData($data)
990
996
$ this ->moveQuoteItem ($ item , 'order ' , $ qty );
991
997
$ transferredItems = $ this ->_session ->getTransferredItems () ?? [];
992
998
$ transferredItems ['cart ' ][$ itemId ] = $ itemId ;
993
- $ this ->_session ->setTransferredItems ($ transferredItems ) ;
999
+ $ this ->_session ->setTransferredItems ($ transferredItems );
994
1000
}
995
1001
}
996
1002
}
@@ -1006,7 +1012,7 @@ public function applySidebarData($data)
1006
1012
$ this ->addProduct ($ item ->getProduct (), $ item ->getBuyRequest ()->toArray ());
1007
1013
$ transferredItems = $ this ->_session ->getTransferredItems () ?? [];
1008
1014
$ transferredItems ['wishlist ' ][$ itemId ] = $ itemId ;
1009
- $ this ->_session ->setTransferredItems ($ transferredItems ) ;
1015
+ $ this ->_session ->setTransferredItems ($ transferredItems );
1010
1016
}
1011
1017
}
1012
1018
}
@@ -2108,34 +2114,17 @@ private function removeTransferredItems(): void
2108
2114
*
2109
2115
* @param string $area
2110
2116
* @param \Magento\Quote\Model\Quote\Item[]|\Magento\Wishlist\Model\Item[] $items
2111
- * @param \Magento\Catalog\Model\Product|null $product Product
2112
2117
* @return bool
2113
2118
*/
2114
- private function restoreTransferredItem ($ area , $ items , $ product = null ): bool
2119
+ private function restoreTransferredItem (string $ area , array $ items ): bool
2115
2120
{
2116
2121
$ transferredItems = $ this ->_session ->getTransferredItems () ?? [];
2117
2122
if (!isset ($ transferredItems [$ area ])) {
2118
2123
return false ;
2119
2124
}
2120
- $ itemToRestoreId = null ;
2121
- switch ($ area ) {
2122
- case 'wishlist ' :
2123
- $ itemToRestore = array_intersect_key ($ items , $ transferredItems ['wishlist ' ]);
2124
- if ($ itemToRestore ) {
2125
- $ itemToRestoreId = array_key_first ($ itemToRestore );
2126
- }
2127
- break ;
2128
- case 'cart ' :
2129
- $ cart = $ this ->getCustomerCart ();
2130
- $ cartItem = $ cart ->getItemByProduct ($ product );
2131
- $ canBeRestored = $ cartItem ? in_array ($ cartItem ->getId (), $ transferredItems ['cart ' ]) : false ;
2132
- if ($ canBeRestored ) {
2133
- $ itemToRestoreId = $ cartItem ->getItemId ();
2134
- }
2135
- break ;
2136
- default :
2137
- break ;
2138
- }
2125
+ $ itemToRestore = array_intersect_key ($ items , $ transferredItems [$ area ]);
2126
+ $ itemToRestoreId = array_key_first ($ itemToRestore );
2127
+
2139
2128
if ($ itemToRestoreId ) {
2140
2129
unset($ transferredItems [$ area ][$ itemToRestoreId ]);
2141
2130
$ this ->_session ->setTransferredItems ($ transferredItems );
0 commit comments