Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
invoice_items_for_search.php
Go to the documentation of this file.
1 <?php
13 use Magento\Sales\Model\Order\Invoice\ItemFactory;
14 use Magento\Sales\Model\Order\InvoiceFactory;
15 use Magento\Sales\Model\Order\Item as OrderItem;
17 
18 require 'default_rollback.php';
19 require __DIR__ . '/order.php';
20 
22 $orderService = Bootstrap::getObjectManager()->create(InvoiceManagementInterface::class);
24 $invoice = $orderService->prepareInvoice($order);
25 $invoice->register();
27 $order = $invoice->getOrder();
28 $order->setIsInProcess(true);
30 $transactionSave = Bootstrap::getObjectManager()->create(Transaction::class);
31 $transactionSave->addObject($invoice)->addObject($order)->save();
32 
34 $invoiceItemFactory = Bootstrap::getObjectManager()->create(ItemFactory::class);
35 
36 $items = [
37  [
38  'name' => 'item 1',
39  'base_price' => 10,
40  'price' => 10,
41  'row_total' => 10,
42  'product_type' => 'simple',
43  'qty' => 10,
44  'qty_invoiced' => 10,
45  'qty_refunded' => 1,
46  ],
47  [
48  'name' => 'item 2',
49  'base_price' => 20,
50  'price' => 20,
51  'row_total' => 20,
52  'product_type' => 'simple',
53  'qty' => 10,
54  'qty_invoiced' => 10,
55  'qty_refunded' => 1,
56  ],
57  [
58  'name' => 'item 3',
59  'base_price' => 30,
60  'price' => 30,
61  'row_total' => 30,
62  'product_type' => 'simple',
63  'qty' => 10,
64  'qty_invoiced' => 10,
65  'qty_refunded' => 1,
66  ],
67  [
68  'name' => 'item 4',
69  'base_price' => 40,
70  'price' => 40,
71  'row_total' => 40,
72  'product_type' => 'simple',
73  'qty' => 10,
74  'qty_invoiced' => 10,
75  'qty_refunded' => 1,
76  ],
77  [
78  'name' => 'item 5',
79  'base_price' => 50,
80  'price' => 50,
81  'row_total' => 50,
82  'product_type' => 'simple',
83  'qty' => 2,
84  'qty_invoiced' => 20,
85  'qty_refunded' => 2,
86  ],
87 ];
88 
90 $invoiceItemRepository = Bootstrap::getObjectManager()->get(InvoiceItemRepositoryInterface::class);
91 
92 foreach ($items as $data) {
94  $orderItem = $objectManager->create(OrderItem::class);
95  $orderItem->setProductId($product->getId())->setQtyOrdered(10);
96  $orderItem->setBasePrice($data['base_price']);
97  $orderItem->setPrice($data['price']);
98  $orderItem->setRowTotal($data['row_total']);
99  $orderItem->setProductType($data['product_type']);
100  $orderItem->setQtyRefunded(1);
101  $orderItem->setQtyInvoiced(10);
102  $orderItem->setOriginalPrice(20);
103 
104  $order->addItem($orderItem);
105  $order->save();
106 
108  $invoiceItem = $invoiceItemFactory->create();
109  $invoiceItem->setInvoice($invoice)
110  ->setName($data['name'])
111  ->setOrderItemId($orderItem->getItemId())
112  ->setQty($data['qty'])
113  ->setPrice($data['price']);
114 
116 }
$invoiceItem
$objectManager
Definition: bootstrap.php:17
$orderItem
Definition: order.php:30
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60