|
4 | 4 | * See COPYING.txt for license details.
|
5 | 5 | */
|
6 | 6 |
|
7 |
| -use Magento\Sales\Api\Data\OrderInterfaceFactory; |
| 7 | +use Magento\Catalog\Api\ProductRepositoryInterface; |
| 8 | +use Magento\Sales\Api\OrderRepositoryInterface; |
8 | 9 | use Magento\Sales\Model\Order;
|
9 |
| -use Magento\TestFramework\Helper\Bootstrap; |
| 10 | +use Magento\Sales\Model\Order\Address as OrderAddress; |
| 11 | +use Magento\Sales\Model\Order\Item as OrderItem; |
| 12 | +use Magento\Sales\Model\Order\Payment; |
| 13 | +use Magento\Store\Model\StoreManagerInterface; |
10 | 14 | use Magento\TestFramework\Workaround\Override\Fixture\Resolver;
|
| 15 | +use Magento\Catalog\Model\Product; |
| 16 | +use Magento\TestFramework\Helper\Bootstrap; |
11 | 17 |
|
12 |
| -Resolver::getInstance()->requireDataFixture( |
13 |
| - 'Magento/Sales/_files/customer_order_item_with_product_and_custom_options.php' |
14 |
| -); |
| 18 | +Resolver::getInstance()->requireDataFixture('Magento/Sales/_files/default_rollback.php'); |
| 19 | +Resolver::getInstance()->requireDataFixture('Magento/Customer/_files/customer.php'); |
| 20 | +Resolver::getInstance()->requireDataFixture('Magento/Catalog/_files/product_simple_without_custom_options.php'); |
15 | 21 |
|
16 | 22 | $objectManager = Bootstrap::getObjectManager();
|
| 23 | +/** @var ProductRepositoryInterface $productRepository */ |
| 24 | +$productRepository = $objectManager->create(ProductRepositoryInterface::class); |
| 25 | +$product = $productRepository->get('simple-2'); |
| 26 | +$billingAddress = $objectManager->create( |
| 27 | + OrderAddress::class, |
| 28 | + [ |
| 29 | + 'data' => [ |
| 30 | + 'region' => 'CA', |
| 31 | + 'region_id' => '12', |
| 32 | + 'postcode' => '11111', |
| 33 | + 'lastname' => 'lastname', |
| 34 | + 'firstname' => 'firstname', |
| 35 | + 'street' => 'street', |
| 36 | + 'city' => 'Los Angeles', |
| 37 | + 'email' => 'admin@example.com', |
| 38 | + 'telephone' => '11111111', |
| 39 | + 'country_id' => 'US', |
| 40 | + ], |
| 41 | + ], |
| 42 | +); |
| 43 | +$billingAddress->setAddressType('billing'); |
| 44 | +$shippingAddress = clone $billingAddress; |
| 45 | +$shippingAddress->setId(null)->setAddressType('shipping'); |
| 46 | + |
| 47 | +/** @var Payment $payment */ |
| 48 | +$payment = $objectManager->create(\Magento\Sales\Model\Order\Payment::class); |
| 49 | +$payment->setMethod('checkmo'); |
| 50 | + |
| 51 | +/** @var OrderItem $orderItem */ |
| 52 | +$orderItem = $objectManager->create(OrderItem::class); |
| 53 | +$orderItem->setProductId($product->getId()) |
| 54 | + ->setQtyOrdered(2) |
| 55 | + ->setBasePrice($product->getPrice()) |
| 56 | + ->setPrice($product->getPrice()) |
| 57 | + ->setRowTotal($product->getPrice()) |
| 58 | + ->setProductType('simple-2') |
| 59 | + ->setName($product->getName()) |
| 60 | + ->setSku($product->getSku()) |
| 61 | + ->setProductOptions(['info_buyRequest' => ['qty' => 1]]); |
| 62 | + |
17 | 63 | /** @var Order $order */
|
18 |
| -$order = $objectManager->get(OrderInterfaceFactory::class)->create()->loadByIncrementId('100000001'); |
19 |
| -$order->setCustomerId(1)->setCustomerIsGuest(false)->save(); |
| 64 | +$order = $objectManager->create(Order::class); |
| 65 | +$order->setIncrementId('100000001') |
| 66 | + ->setCustomerIsGuest(false) |
| 67 | + ->setCustomerId(1) |
| 68 | + ->setCustomerEmail('customer@null.com') |
| 69 | + ->setBillingAddress($billingAddress) |
| 70 | + ->setShippingAddress($shippingAddress) |
| 71 | + ->setStoreId($objectManager->get(StoreManagerInterface::class)->getStore()->getId()) |
| 72 | + ->addItem($orderItem) |
| 73 | + ->setPayment($payment); |
| 74 | +/** @var OrderRepositoryInterface $orderRepository */ |
| 75 | +$orderRepository = $objectManager->create(OrderRepositoryInterface::class); |
| 76 | +$orderRepository->save($order); |
20 | 77 |
|
21 | 78 | // load product and set it out of stock
|
22 |
| -/** @var \Magento\Catalog\Api\ProductRepositoryInterface $repository */ |
23 |
| -$productRepository = Bootstrap::getObjectManager()->create(\Magento\Catalog\Api\ProductRepositoryInterface::class); |
24 |
| -$productSku = 'simple'; |
25 |
| -/** @var \Magento\Catalog\Model\Product $product */ |
| 79 | +/** @var ProductRepositoryInterface $repository */ |
| 80 | +$productRepository = Bootstrap::getObjectManager()->create(ProductRepositoryInterface::class); |
| 81 | +$productSku = 'simple-2'; |
| 82 | +/** @var Product $product */ |
26 | 83 | $product = $productRepository->get($productSku);
|
27 | 84 | // set product as out of stock
|
28 | 85 | $product->setStockData(
|
|
0 commit comments