Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ToOrder.php
Go to the documentation of this file.
1 <?php
8 
13 use Magento\Sales\Api\Data\OrderInterfaceFactory as OrderFactory;
14 
18 class ToOrder
19 {
23  protected $objectCopyService;
24 
28  protected $orderFactory;
29 
33  protected $eventManager;
34 
38  protected $dataObjectHelper;
39 
46  public function __construct(
47  OrderFactory $orderFactory,
50  \Magento\Framework\Api\DataObjectHelper $dataObjectHelper
51  ) {
52  $this->orderFactory = $orderFactory;
53  $this->objectCopyService = $objectCopyService;
54  $this->eventManager = $eventManager;
55  $this->dataObjectHelper = $dataObjectHelper;
56  }
57 
63  public function convert(Address $object, $data = [])
64  {
65  $orderData = $this->objectCopyService->getDataFromFieldset(
66  'sales_convert_quote_address',
67  'to_order',
68  $object
69  );
73  $order = $this->orderFactory->create();
74  $this->dataObjectHelper->populateWithArray(
75  $order,
76  array_merge($orderData, $data),
77  \Magento\Sales\Api\Data\OrderInterface::class
78  );
79  $order->setStoreId($object->getQuote()->getStoreId())
80  ->setQuoteId($object->getQuote()->getId())
81  ->setIncrementId($object->getQuote()->getReservedOrderId());
82  $this->objectCopyService->copyFieldsetToTarget(
83  'sales_convert_quote',
84  'to_order',
85  $object->getQuote(),
86  $order
87  );
88  $this->eventManager->dispatch(
89  'sales_convert_quote_to_order',
90  ['order' => $order, 'quote' => $object->getQuote()]
91  );
92  return $order;
93  }
94 }
$order
Definition: order.php:55
__construct(OrderFactory $orderFactory, Copy $objectCopyService, ManagerInterface $eventManager, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper)
Definition: ToOrder.php:46