quote.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. \Magento\TestFramework\Helper\Bootstrap::getInstance()->loadArea('frontend');
  7. $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Catalog\Model\Product::class);
  8. $product->setTypeId('simple')
  9. ->setId(1)
  10. ->setAttributeSetId(4)
  11. ->setName('Simple Product')
  12. ->setSku('simple')
  13. ->setPrice(10)
  14. ->setTaxClassId(0)
  15. ->setMetaTitle('meta title')
  16. ->setMetaKeyword('meta keyword')
  17. ->setMetaDescription('meta description')
  18. ->setVisibility(\Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH)
  19. ->setStatus(\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED)
  20. ->setStockData(
  21. [
  22. 'qty' => 100,
  23. 'is_in_stock' => 1,
  24. 'manage_stock' => 1,
  25. ]
  26. )->save();
  27. $productRepository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
  28. ->create(\Magento\Catalog\Api\ProductRepositoryInterface::class);
  29. $product = $productRepository->get('simple');
  30. $addressData = include __DIR__ . '/address_data.php';
  31. $billingAddress = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  32. \Magento\Quote\Model\Quote\Address::class,
  33. ['data' => $addressData]
  34. );
  35. $billingAddress->setAddressType('billing');
  36. $shippingAddress = clone $billingAddress;
  37. $shippingAddress->setId(null)->setAddressType('shipping');
  38. $store = Magento\TestFramework\Helper\Bootstrap::getObjectManager()
  39. ->get(\Magento\Store\Model\StoreManagerInterface::class)
  40. ->getStore();
  41. /** @var \Magento\Quote\Model\Quote $quote */
  42. $quote = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Quote\Model\Quote::class);
  43. $quote->setCustomerIsGuest(true)
  44. ->setStoreId($store->getId())
  45. ->setReservedOrderId('test01')
  46. ->setBillingAddress($billingAddress)
  47. ->setShippingAddress($shippingAddress)
  48. ->addProduct($product);
  49. $quote->getPayment()->setMethod('checkmo');
  50. $quote->setIsMultiShipping('1');
  51. $quote->collectTotals();
  52. $quoteRepository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
  53. ->create(\Magento\Quote\Api\CartRepositoryInterface::class);
  54. $quoteRepository->save($quote);
  55. /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
  56. $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
  57. ->create(\Magento\Quote\Model\QuoteIdMaskFactory::class)
  58. ->create();
  59. $quoteIdMask->setQuoteId($quote->getId());
  60. $quoteIdMask->setDataChanges(true);
  61. $quoteIdMask->save();