quote.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. use Magento\Quote\Api\CartManagementInterface;
  8. use Magento\Quote\Api\CartRepositoryInterface;
  9. use Magento\Quote\Api\Data\AddressInterface;
  10. use Magento\Quote\Api\Data\CartInterface;
  11. use Magento\TestFramework\Helper\Bootstrap;
  12. use Magento\Quote\Api\Data\AddressInterfaceFactory;
  13. /** @var CartManagementInterface $cartManagement */
  14. $cartManagement = Bootstrap::getObjectManager()->get(CartManagementInterface::class);
  15. /** @var CartRepositoryInterface $cartRepository */
  16. $cartRepository = Bootstrap::getObjectManager()->get(CartRepositoryInterface::class);
  17. /** @var AddressInterfaceFactory $addressFactory */
  18. $addressFactory = Bootstrap::getObjectManager()->get(AddressInterfaceFactory::class);
  19. $cartId = $cartManagement->createEmptyCart();
  20. /** @var CartInterface $cart */
  21. $cart = $cartRepository->get($cartId);
  22. $cart->setCustomerEmail('admin@example.com');
  23. $cart->setCustomerIsGuest(true);
  24. /** @var AddressInterface $address */
  25. $address = $addressFactory->create(
  26. [
  27. 'data' => [
  28. AddressInterface::KEY_COUNTRY_ID => 'US',
  29. AddressInterface::KEY_REGION_ID => 15,
  30. AddressInterface::KEY_LASTNAME => 'Doe',
  31. AddressInterface::KEY_FIRSTNAME => 'John',
  32. AddressInterface::KEY_STREET => 'example street',
  33. AddressInterface::KEY_EMAIL => 'customer@example.com',
  34. AddressInterface::KEY_CITY => 'example city',
  35. AddressInterface::KEY_TELEPHONE => '000 0000',
  36. AddressInterface::KEY_POSTCODE => 12345
  37. ]
  38. ]
  39. );
  40. $cart->setReservedOrderId('test_order_1');
  41. $cart->setBillingAddress($address);
  42. $cart->setShippingAddress($address);
  43. $cart->getPayment()->setMethod('checkmo');
  44. $cart->getShippingAddress()->setShippingMethod('flatrate_flatrate');
  45. $cart->getShippingAddress()->setCollectShippingRates(true);
  46. $cart->getShippingAddress()->collectShippingRates();
  47. $cartRepository->save($cart);