![]() 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/old/dev/tests/integration/testsuite/Magento/Sales/_files/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); use Magento\Catalog\Api\ProductRepositoryInterface; use Magento\Sales\Api\Data\OrderInterfaceFactory; use Magento\Sales\Model\Order; use Magento\Sales\Api\OrderRepositoryInterface; use Magento\Sales\Model\Order\Address as OrderAddress; use Magento\TestFramework\Helper\Bootstrap; use Magento\TestFramework\Workaround\Override\Fixture\Resolver; Resolver::getInstance()->requireDataFixture('Magento/Sales/_files/order.php'); $objectManager = Bootstrap::getObjectManager(); /** @var ProductRepositoryInterface $productRepository */ $productRepository = $objectManager->create(ProductRepositoryInterface::class); $product = $productRepository->get('simple'); /** @var Order $order */ $order = $objectManager->get(OrderInterfaceFactory::class)->create()->loadByIncrementId('100000001'); $payment = $order->getPayment(); $orderItems = $order->getItems(); $orderItem = reset($orderItems); $addressData = include __DIR__ . '/address_data.php'; $orders = [ [ 'increment_id' => '100000002', 'state' => \Magento\Sales\Model\Order::STATE_NEW, 'status' => 'processing', 'grand_total' => 120.00, 'subtotal' => 120.00, 'base_grand_total' => 120.00, 'store_id' => 1, 'website_id' => 1, 'created_at' => '2022-09-04' ], [ 'increment_id' => '100000003', 'state' => \Magento\Sales\Model\Order::STATE_PROCESSING, 'status' => 'processing', 'grand_total' => 130.00, 'base_grand_total' => 130.00, 'subtotal' => 130.00, 'total_paid' => 130.00, 'store_id' => 0, 'website_id' => 0, 'created_at' => '2022-09-10' ], [ 'increment_id' => '100000004', 'state' => \Magento\Sales\Model\Order::STATE_PROCESSING, 'status' => 'closed', 'grand_total' => 140.00, 'base_grand_total' => 140.00, 'subtotal' => 140.00, 'store_id' => 1, 'website_id' => 1, 'created_at' => '2022-09-05' ], [ 'increment_id' => '100000005', 'state' => \Magento\Sales\Model\Order::STATE_COMPLETE, 'status' => 'complete', 'grand_total' => 150.00, 'base_grand_total' => 150.00, 'subtotal' => 150.00, 'total_paid' => 150.00, 'store_id' => 1, 'website_id' => 1, 'created_at' => '2022-09-08' ], [ 'increment_id' => '100000006', 'state' => \Magento\Sales\Model\Order::STATE_COMPLETE, 'status' => 'complete', 'grand_total' => 160.00, 'base_grand_total' => 160.00, 'subtotal' => 160.00, 'total_paid' => 160.00, 'store_id' => 1, 'website_id' => 1, 'created_at' => '2022-09-09' ], ]; /** @var OrderRepositoryInterface $orderRepository */ $orderRepository = $objectManager->create(OrderRepositoryInterface::class); /** @var array $orderData */ foreach ($orders as $orderData) { $newPayment = clone $payment; $newPayment->setId(null); /** @var $order \Magento\Sales\Model\Order */ $order = Bootstrap::getObjectManager()->create( \Magento\Sales\Model\Order::class ); // Reset addresses /** @var Order\Address $billingAddress */ $billingAddress = $objectManager->create(OrderAddress::class, ['data' => $addressData]); $billingAddress->setAddressType('billing'); $shippingAddress = clone $billingAddress; $shippingAddress->setId(null)->setAddressType('shipping'); /** @var Order\Item $orderItem */ $orderItem = $objectManager->create(Order\Item::class); $orderItem->setProductId($product->getId()) ->setQtyOrdered(2) ->setBasePrice($product->getPrice()) ->setPrice($product->getPrice()) ->setRowTotal($product->getPrice()) ->setProductType('simple'); $order ->setData($orderData) ->addItem($orderItem) ->setCustomerIsGuest(false) ->setCustomerId(1) ->setCustomerEmail('[email protected]') ->setBillingAddress($billingAddress) ->setShippingAddress($shippingAddress) ->setPayment($newPayment); $orderRepository->save($order); }