| 
 | 1 | +diff --git a/vendor/magento/module-sales/Block/Adminhtml/Order/Create/Sidebar/Cart.php b/vendor/magento/module-sales/Block/Adminhtml/Order/Create/Sidebar/Cart.php  | 
 | 2 | +index 53a74ac89554f..faab23f735238 100644  | 
 | 3 | +--- a/vendor/magento/module-sales/Block/Adminhtml/Order/Create/Sidebar/Cart.php  | 
 | 4 | ++++ b/vendor/magento/module-sales/Block/Adminhtml/Order/Create/Sidebar/Cart.php  | 
 | 5 | +@@ -1,7 +1,7 @@  | 
 | 6 | + <?php  | 
 | 7 | + /**  | 
 | 8 | +- * Copyright © Magento, Inc. All rights reserved.  | 
 | 9 | +- * See COPYING.txt for license details.  | 
 | 10 | ++ * Copyright 2011 Adobe  | 
 | 11 | ++ * All Rights Reserved.  | 
 | 12 | +  */  | 
 | 13 | + declare(strict_types=1);  | 
 | 14 | +   | 
 | 15 | +@@ -15,7 +15,6 @@  | 
 | 16 | +  * Adminhtml sales order create sidebar cart block  | 
 | 17 | +  *  | 
 | 18 | +  * @api  | 
 | 19 | +- * @author      Magento Core Team <[email protected]>  | 
 | 20 | +  * @since 100.0.2  | 
 | 21 | +  */  | 
 | 22 | + class Cart extends \Magento\Sales\Block\Adminhtml\Order\Create\Sidebar\AbstractSidebar  | 
 | 23 | +@@ -59,16 +58,6 @@ public function getItemCollection()  | 
 | 24 | +         $collection = $this->getData('item_collection');  | 
 | 25 | +         if ($collection === null) {  | 
 | 26 | +             $collection = $this->getCreateOrderModel()->getCustomerCart()->getAllVisibleItems();  | 
 | 27 | +-            $transferredItems = $this->getCreateOrderModel()->getSession()->getTransferredItems() ?? [];  | 
 | 28 | +-            $transferredItems = $transferredItems[$this->getDataId()] ?? [];  | 
 | 29 | +-            if (!empty($transferredItems)) {  | 
 | 30 | +-                foreach ($collection as $key => $item) {  | 
 | 31 | +-                    if (in_array($item->getId(), $transferredItems)) {  | 
 | 32 | +-                        unset($collection[$key]);  | 
 | 33 | +-                    }  | 
 | 34 | +-                }  | 
 | 35 | +-            }  | 
 | 36 | +-  | 
 | 37 | +             $this->setData('item_collection', $collection);  | 
 | 38 | +         }  | 
 | 39 | +         return $collection;  | 
 | 40 | +diff --git a/vendor/magento/module-sales/Model/AdminOrder/Create.php b/vendor/magento/module-sales/Model/AdminOrder/Create.php  | 
 | 41 | +index 4b1868e6852d9..868622d1032ab 100644  | 
 | 42 | +--- a/vendor/magento/module-sales/Model/AdminOrder/Create.php  | 
 | 43 | ++++ b/vendor/magento/module-sales/Model/AdminOrder/Create.php  | 
 | 44 | +@@ -11,6 +11,7 @@  | 
 | 45 | + use Magento\Customer\Model\Metadata\Form as CustomerForm;  | 
 | 46 | + use Magento\Framework\Api\ExtensibleDataObjectConverter;  | 
 | 47 | + use Magento\Framework\App\ObjectManager;  | 
 | 48 | ++use Magento\Framework\Exception\LocalizedException;  | 
 | 49 | + use Magento\Quote\Model\Quote\Address;  | 
 | 50 | + use Magento\Quote\Model\Quote\Address\CustomAttributeListInterface;  | 
 | 51 | + use Magento\Quote\Model\Quote\Item;  | 
 | 52 | +@@ -20,6 +21,7 @@  | 
 | 53 | + use Magento\Store\Model\StoreManagerInterface;  | 
 | 54 | + use Psr\Log\LoggerInterface;  | 
 | 55 | + use Magento\Quote\Model\Quote;  | 
 | 56 | ++use Magento\Framework\App\Request\Http as HttpRequest;  | 
 | 57 | +   | 
 | 58 | + /**  | 
 | 59 | +  * Order create model  | 
 | 60 | +@@ -264,6 +266,11 @@ class Create extends \Magento\Framework\DataObject implements \Magento\Checkout\  | 
 | 61 | +      */  | 
 | 62 | +     private $orderRepositoryInterface;  | 
 | 63 | +   | 
 | 64 | ++    /**  | 
 | 65 | ++     * @var HttpRequest  | 
 | 66 | ++     */  | 
 | 67 | ++    private $request;  | 
 | 68 | ++  | 
 | 69 | +     /**  | 
 | 70 | +      * @param \Magento\Framework\ObjectManagerInterface $objectManager  | 
 | 71 | +      * @param \Magento\Framework\Event\ManagerInterface $eventManager  | 
 | 72 | +@@ -298,6 +305,7 @@ class Create extends \Magento\Framework\DataObject implements \Magento\Checkout\  | 
 | 73 | +      * @param StoreManagerInterface $storeManager  | 
 | 74 | +      * @param CustomAttributeListInterface|null $customAttributeList  | 
 | 75 | +      * @param OrderRepositoryInterface|null $orderRepositoryInterface  | 
 | 76 | ++     * @param HttpRequest|null $request  | 
 | 77 | +      * @SuppressWarnings(PHPMD.ExcessiveParameterList)  | 
 | 78 | +      */  | 
 | 79 | +     public function __construct(  | 
 | 80 | +@@ -333,7 +341,8 @@ public function __construct(  | 
 | 81 | +         ExtensibleDataObjectConverter $dataObjectConverter = null,  | 
 | 82 | +         StoreManagerInterface $storeManager = null,  | 
 | 83 | +         CustomAttributeListInterface $customAttributeList = null,  | 
 | 84 | +-        OrderRepositoryInterface $orderRepositoryInterface = null  | 
 | 85 | ++        OrderRepositoryInterface $orderRepositoryInterface = null,  | 
 | 86 | ++        HttpRequest $request = null  | 
 | 87 | +     ) {  | 
 | 88 | +         $this->_objectManager = $objectManager;  | 
 | 89 | +         $this->_eventManager = $eventManager;  | 
 | 90 | +@@ -372,6 +381,8 @@ public function __construct(  | 
 | 91 | +             ->get(CustomAttributeListInterface::class);  | 
 | 92 | +         $this->orderRepositoryInterface = $orderRepositoryInterface ?: ObjectManager::getInstance()  | 
 | 93 | +             ->get(OrderRepositoryInterface::class);  | 
 | 94 | ++        $this->request = $request ?: ObjectManager::getInstance()  | 
 | 95 | ++            ->get(HttpRequest::class);  | 
 | 96 | +     }  | 
 | 97 | +   | 
 | 98 | +     /**  | 
 | 99 | +@@ -895,8 +906,8 @@ public function moveQuoteItem($item, $moveTo, $qty)  | 
 | 100 | +                         }  | 
 | 101 | +                         $canBeRestored = $this->restoreTransferredItem('cart', $cartItemsToRestore);  | 
 | 102 | +   | 
 | 103 | ++                        $cartItem = $cart->addProduct($product, $info);  | 
 | 104 | +                         if (!$canBeRestored) {  | 
 | 105 | +-                            $cartItem = $cart->addProduct($product, $info);  | 
 | 106 | +                             if (is_string($cartItem)) {  | 
 | 107 | +                                 throw new \Magento\Framework\Exception\LocalizedException(__($cartItem));  | 
 | 108 | +                             }  | 
 | 109 | +@@ -904,6 +915,7 @@ public function moveQuoteItem($item, $moveTo, $qty)  | 
 | 110 | +                         }  | 
 | 111 | +                         $this->_needCollectCart = true;  | 
 | 112 | +                         $removeItem = true;  | 
 | 113 | ++                        $this->removeCartTransferredItemsAndUpdateQty($cartItem, $item->getId());  | 
 | 114 | +                     }  | 
 | 115 | +                     break;  | 
 | 116 | +                 case 'wishlist':  | 
 | 117 | +@@ -2310,4 +2322,30 @@ private function formattedOptions(\Magento\Catalog\Model\Product $product, $buyR  | 
 | 118 | +         }  | 
 | 119 | +         return $this;  | 
 | 120 | +     }  | 
 | 121 | ++  | 
 | 122 | ++    /**  | 
 | 123 | ++     * Remove cart from transferred items  | 
 | 124 | ++     *  | 
 | 125 | ++     * @param int|null|Item $cartItem  | 
 | 126 | ++     * @param int $itemId  | 
 | 127 | ++     * @return void  | 
 | 128 | ++     * @SuppressWarnings(PHPMD.UnusedFormalParameter)  | 
 | 129 | ++     * @see AC-14442  | 
 | 130 | ++     */  | 
 | 131 | ++    private function removeCartTransferredItemsAndUpdateQty(int|null|Item $cartItem, int $itemId)  | 
 | 132 | ++    {  | 
 | 133 | ++        $removeCartTransferredItems = $this->getSession()->getTransferredItems() ?? [];  | 
 | 134 | ++        if (isset($removeCartTransferredItems['cart'])) {  | 
 | 135 | ++            $removeTransferredItemKey = array_search($cartItem->getId(), $removeCartTransferredItems['cart']);  | 
 | 136 | ++            if ($removeTransferredItemKey !== false && $removeCartTransferredItems['cart'][$removeTransferredItemKey]) {  | 
 | 137 | ++                $cartItem->clearMessage();  | 
 | 138 | ++                $cartItem->setHasError(false);  | 
 | 139 | ++                if ($cartItem->getHasError()) {  | 
 | 140 | ++                    throw new LocalizedException(__($cartItem->getMessage()));  | 
 | 141 | ++                }  | 
 | 142 | ++                unset($removeCartTransferredItems['cart'][$removeTransferredItemKey]);  | 
 | 143 | ++            }  | 
 | 144 | ++            $this->getSession()->setTransferredItems($removeCartTransferredItems);  | 
 | 145 | ++        }  | 
 | 146 | ++    }  | 
 | 147 | + }  | 
 | 148 | +diff --git a/vendor/magento/module-sales/i18n/en_US.csv b/vendor/magento/module-sales/i18n/en_US.csv  | 
 | 149 | +index 6b22ae7565665..faf70f007853a 100644  | 
 | 150 | +--- a/vendor/magento/module-sales/i18n/en_US.csv  | 
 | 151 | ++++ b/vendor/magento/module-sales/i18n/en_US.csv  | 
 | 152 | +@@ -528,6 +528,7 @@ Subtotal:,Subtotal:  | 
 | 153 | + Refresh,Refresh  | 
 | 154 | + Item,Item  | 
 | 155 | + "Add To Order","Add To Order"  | 
 | 156 | ++"Add to the new order", "Add to the new order"  | 
 | 157 | + "Configure and Add to Order","Configure and Add to Order"  | 
 | 158 | + "No items","No items"  | 
 | 159 | + "Append Comments","Append Comments"  | 
 | 160 | +diff --git a/vendor/magento/module-sales/view/adminhtml/templates/order/create/sidebar/items.phtml b/vendor/magento/module-sales/view/adminhtml/templates/order/create/sidebar/items.phtml  | 
 | 161 | +index 517d9c2f53ca6..5d54db61d828b 100644  | 
 | 162 | +--- a/vendor/magento/module-sales/view/adminhtml/templates/order/create/sidebar/items.phtml  | 
 | 163 | ++++ b/vendor/magento/module-sales/view/adminhtml/templates/order/create/sidebar/items.phtml  | 
 | 164 | +@@ -65,9 +65,9 @@ $sideBarPermissionCheck = $block->getData('sideBarPermissionCheck');  | 
 | 165 | +                     <?php endif; ?>  | 
 | 166 | +   | 
 | 167 | +                     <th class="col-add">  | 
 | 168 | +-                        <span title="<?= $escaper->escapeHtml(__('Add To Order')) ?>"  | 
 | 169 | ++                        <span title="<?= $escaper->escapeHtml(__('Add to the new order')) ?>"  | 
 | 170 | +                               class="icon icon-add">  | 
 | 171 | +-                            <span><?= $escaper->escapeHtml(__('Add To Order')) ?></span>  | 
 | 172 | ++                            <span><?= $escaper->escapeHtml(__('Add to the new order')) ?></span>  | 
 | 173 | +                         </span>  | 
 | 174 | +                     </th>  | 
 | 175 | +                 </tr>  | 
 | 176 | +@@ -146,7 +146,7 @@ $sideBarPermissionCheck = $block->getData('sideBarPermissionCheck');  | 
 | 177 | +                                            name="sidebar[<?= $escaper->escapeHtmlAttr($block->getSidebarStorageAction())  | 
 | 178 | +                                             ?>][<?= (int) $block->getIdentifierId($_item) ?>]"  | 
 | 179 | +                                            value="<?= $block->canDisplayItemQty() ? (float) $_item->getQty() : 1 ?>"  | 
 | 180 | +-                                           title="<?= $escaper->escapeHtml(__('Add To Order')) ?>"/>  | 
 | 181 | ++                                           title="<?= $escaper->escapeHtml(__('Add to the new order')) ?>"/>  | 
 | 182 | +                                     <label class="admin__field-label"  | 
 | 183 | +                                            for="sidebar-<?= $escaper->escapeHtmlAttr($block->getSidebarStorageAction())  | 
 | 184 | +                                             ?>-<?= (int) $block->getIdentifierId($_item) ?>">  | 
 | 185 | + | 
0 commit comments