![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/module-quote/Model/Quote/Item/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Quote\Model\Quote\Item; use Magento\Framework\DataObject\Copy; use Magento\Quote\Model\Quote\Item; use Magento\Quote\Model\Quote\Address\Item as AddressItem; use Magento\Sales\Api\Data\OrderItemInterfaceFactory as OrderItemFactory; use Magento\Sales\Api\Data\OrderItemInterface; /** * Class ToOrderItem */ class ToOrderItem { /** * @var Copy */ protected $objectCopyService; /** * @var OrderItemFactory */ protected $orderItemFactory; /** * @var \Magento\Framework\Api\DataObjectHelper */ protected $dataObjectHelper; /** * @param OrderItemFactory $orderItemFactory * @param Copy $objectCopyService * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper */ public function __construct( OrderItemFactory $orderItemFactory, Copy $objectCopyService, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper ) { $this->orderItemFactory = $orderItemFactory; $this->objectCopyService = $objectCopyService; $this->dataObjectHelper = $dataObjectHelper; } /** * Convert quote item(quote address item) into order item. * * @param Item|AddressItem $item * @param array $data * @return OrderItemInterface */ public function convert($item, $data = []) { $options = $item->getProductOrderOptions(); if (!$options) { $options = $item->getProduct()->getTypeInstance()->getOrderOptions($item->getProduct()); } $orderItemData = $this->objectCopyService->getDataFromFieldset( 'quote_convert_item', 'to_order_item', $item ); if ($item instanceof \Magento\Quote\Model\Quote\Address\Item) { $orderItemData = array_merge( $orderItemData, $this->objectCopyService->getDataFromFieldset( 'quote_convert_address_item', 'to_order_item', $item ) ); } if (!$item->getNoDiscount()) { $data = array_merge( $data, $this->objectCopyService->getDataFromFieldset( 'quote_convert_item', 'to_order_item_discount', $item ) ); } $orderItem = $this->orderItemFactory->create(); $this->dataObjectHelper->populateWithArray( $orderItem, array_merge($orderItemData, $data), \Magento\Sales\Api\Data\OrderItemInterface::class ); $orderItem->setProductOptions($options); if ($item->getParentItem()) { $orderItem->setQtyOrdered( $orderItemData[OrderItemInterface::QTY_ORDERED] * $item->getParentItem()->getQty() ); } return $orderItem; } }