Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
order_info.php
Go to the documentation of this file.
1 <?php
8 
10  \Magento\Backend\App\Area\FrontNameResolver::AREA_CODE
11 );
12 
14 $product = $objectManager->create(\Magento\Catalog\Model\Product::class);
15 $product->setTypeId('virtual')
16  ->setId(1)
17  ->setAttributeSetId(4)
18  ->setName('Simple Product')
19  ->setSku('simple')
20  ->setPrice(10)
21  ->setStockData([
22  'use_config_manage_stock' => 1,
23  'qty' => 100,
24  'is_qty_decimal' => 0,
25  'is_in_stock' => 1,
26  ])
27  ->setVisibility(\Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH)
28  ->setStatus(\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED)
29  ->save();
30 $product->load(1);
31 
32 $addressData = include __DIR__ . '/address_data.php';
33 
34 $billingAddress = $objectManager->create(\Magento\Quote\Model\Quote\Address::class, ['data' => $addressData]);
35 $billingAddress->setAddressType('billing');
36 
38 $shippingAddress->setId(null)->setAddressType('shipping');
39 $shippingAddress->setShippingMethod('flatrate_flatrate');
40 
42 $quote = $objectManager->create(\Magento\Quote\Model\Quote::class);
43 $quote->setCustomerEmail('[email protected]');
44 $quote->setCustomerIsGuest(true);
45 $quote->setStoreId($objectManager->get(\Magento\Store\Model\StoreManagerInterface::class)->getStore()->getId());
46 $quote->setReservedOrderId('100000001');
47 $quote->setBillingAddress($billingAddress);
48 $quote->setShippingAddress($shippingAddress);
49 $quote->getPayment()->setMethod('checkmo');
50 $quote->getShippingAddress()->setShippingMethod('flatrate_flatrate');
51 $quote->getShippingAddress()->setCollectShippingRates(true);
52 $quote->getShippingAddress()->collectShippingRates();
53 
55 $quoteRepository = $objectManager->create(\Magento\Quote\Api\CartRepositoryInterface::class);
57 
59 $cartItemFactory = $objectManager->get(\Magento\Quote\Api\Data\CartItemInterfaceFactory::class);
60 
63 $cartItem->setQty(10);
64 $cartItem->setQuoteId($quote->getId());
65 $cartItem->setSku($product->getSku());
66 $cartItem->setProductType(\Magento\Catalog\Model\Product\Type::TYPE_SIMPLE);
67 
69 $cartItemRepository = $objectManager->get(\Magento\Quote\Api\CartItemRepositoryInterface::class);
71 
73 $quoteManagement = $objectManager->create(\Magento\Quote\Api\CartManagementInterface::class);
74 
75 $quote = $quoteRepository->get($quote->getId());
76 $order = $quoteManagement->submit($quote, ['increment_id' => '100000001']);
77 
79 $item = $order->getAllItems()[0];
80 
82 $invoiceFactory = $objectManager->get(\Magento\Sales\Api\InvoiceManagementInterface::class);
83 
85 $invoice = $invoiceFactory->prepareInvoice($order, [$item->getId() => 10]);
86 $invoice->register();
87 $invoice->save();
88 $order->save();
89 
90 $invoice = $objectManager->get(\Magento\Sales\Api\InvoiceRepositoryInterface::class)->get($invoice->getId());
91 
93 $creditmemoFactory = $objectManager->get(\Magento\Sales\Model\Order\CreditmemoFactory::class);
94 $creditmemo = $creditmemoFactory->createByInvoice($invoice, ['qtys' => [$item->getId() => 5]]);
95 
96 foreach ($creditmemo->getAllItems() as $creditmemoItem) {
97  //Workaround to return items to stock
98  $creditmemoItem->setBackToStock(true);
99 }
100 
101 $creditmemoManagement = $objectManager->create(\Magento\Sales\Api\CreditmemoManagementInterface::class);
$creditmemo
Definition: order_info.php:94
$addressData
Definition: order_info.php:32
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60
$quoteRepository
Definition: order_info.php:55
$cartItem
Definition: order_info.php:62
$item
Definition: order_info.php:79
$shippingAddress
Definition: order_info.php:37
$cartItemFactory
Definition: order_info.php:59
$order
Definition: order_info.php:76
$invoiceFactory
Definition: order_info.php:82
$invoice
Definition: order_info.php:85
$creditmemoFactory
Definition: order_info.php:93
foreach($creditmemo->getAllItems() as $creditmemoItem) $creditmemoManagement
Definition: order_info.php:101
$quote
Definition: order_info.php:42
$product
Definition: order_info.php:14
$billingAddress
Definition: order_info.php:34
$cartItemRepository
Definition: order_info.php:69
$quoteManagement
Definition: order_info.php:73
$objectManager
Definition: order_info.php:7