Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
order_item_with_product_and_custom_options.php
Go to the documentation of this file.
1 <?php
7 require __DIR__ . '/product_simple.php';
8 
10 
11 $addressData = include __DIR__ . '/../../../Magento/Sales/_files/address_data.php';
12 
13 $billingAddress = $objectManager->create(\Magento\Sales\Model\Order\Address::class, ['data' => $addressData]);
14 $billingAddress->setAddressType('billing');
15 
17 $shippingAddress->setId(null)->setAddressType('shipping');
18 
19 $payment = $objectManager->create(\Magento\Sales\Model\Order\Payment::class);
20 $payment->setMethod('checkmo');
21 
23 $product = $objectManager->create(\Magento\Catalog\Model\Product::class);
24 $repository = $objectManager->create(\Magento\Catalog\Model\ProductRepository::class);
25 $product = $repository->get('simple');
26 
28  'field' => 'Test value',
29  'date_time' => [
30  'year' => '2015',
31  'month' => '9',
32  'day' => '9',
33  'hour' => '2',
34  'minute' => '2',
35  'day_part' => 'am',
36  'date_internal' => '',
37  ],
38  'drop_down' => '3-1-select',
39  'radio' => '4-1-radio',
40 ];
41 
42 $requestInfo = ['options' => []];
43 $productOptions = $product->getOptions();
44 foreach ($productOptions as $option) {
45  $requestInfo['options'][$option->getOptionId()] = $optionValuesByType[$option->getType()];
46 }
47 
49 $orderItem = $objectManager->create(\Magento\Sales\Model\Order\Item::class);
50 $orderItem->setProductId($product->getId());
51 $orderItem->setQtyOrdered(1);
52 $orderItem->setBasePrice($product->getPrice());
53 $orderItem->setPrice($product->getPrice());
54 $orderItem->setRowTotal($product->getPrice());
55 $orderItem->setProductType($product->getTypeId());
56 $orderItem->setProductOptions(['info_buyRequest' => $requestInfo]);
57 
59 $order = $objectManager->create(\Magento\Sales\Model\Order::class);
60 $order->setIncrementId('100000001');
61 $order->setState(\Magento\Sales\Model\Order::STATE_NEW);
62 $order->setStatus($order->getConfig()->getStateDefaultStatus(\Magento\Sales\Model\Order::STATE_NEW));
63 $order->setCustomerIsGuest(true);
64 $order->setCustomerEmail('[email protected]');
65 $order->setCustomerFirstname('firstname');
66 $order->setCustomerLastname('lastname');
67 $order->setBillingAddress($billingAddress);
68 $order->setShippingAddress($shippingAddress);
69 $order->setAddresses([$billingAddress, $shippingAddress]);
70 $order->setPayment($payment);
71 $order->addItem($orderItem);
72 $order->setStoreId($objectManager->get(\Magento\Store\Model\StoreManagerInterface::class)->getStore()->getId());
73 $order->setSubtotal(100);
74 $order->setBaseSubtotal(100);
75 $order->setBaseGrandTotal(100);
76 $order->save();
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60