![]() 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/Multishipping/Fixtures/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); use Magento\Quote\Model\Quote; use Magento\Quote\Model\QuoteFactory; use Magento\Quote\Model\ResourceModel\Quote as QuoteResource; use Magento\Store\Model\StoreManagerInterface; use Magento\TestFramework\Helper\Bootstrap; use Magento\TestFramework\ObjectManager; use Magento\Quote\Api\CartRepositoryInterface; use Magento\Quote\Api\Data\PaymentInterface; use Magento\Quote\Api\Data\AddressInterface; use Magento\Quote\Model\Quote\Address\Rate; use Magento\TestFramework\Workaround\Override\Fixture\Resolver; /** @var ObjectManager $objectManager */ $objectManager = Bootstrap::getObjectManager(); /** @var QuoteFactory $quoteFactory */ $quoteFactory = Bootstrap::getObjectManager()->get(QuoteFactory::class); /** @var QuoteResource $quoteResource */ $quoteResource = Bootstrap::getObjectManager()->get(QuoteResource::class); /** @var StoreManagerInterface $storeManager */ $storeManager = $objectManager->get(StoreManagerInterface::class); /** @var CartRepositoryInterface $quoteRepository */ $quoteRepository = $objectManager->get(CartRepositoryInterface::class); $store = $storeManager->getStore(); /** @var Quote $quote */ $quote = $objectManager->create(Quote::class); $quote->setReservedOrderId('multishipping_quote_id') ->setCustomerEmail('[email protected]') ->setStoreId($storeManager->getStore()->getId()); $addressList = [ [ 'firstname' => 'Jonh', 'lastname' => 'Doe', 'telephone' => '0333-233-221', 'street' => ['Main Division 1'], 'city' => 'Culver City', 'region' => 'CA', 'postcode' => 90800, 'country_id' => 'US', 'email' => '[email protected]', 'address_type' => 'shipping', ], [ 'firstname' => 'Antoni', 'lastname' => 'Holmes', 'telephone' => '0333-233-221', 'street' => ['Second Division 2'], 'city' => 'Denver', 'region' => 'CO', 'postcode' => 80203, 'country_id' => 'US', 'email' => '[email protected]', 'address_type' => 'shipping' ] ]; $methodCode = 'flatrate_flatrate'; foreach ($addressList as $data) { /** @var Rate $rate */ $rate = $objectManager->create(Rate::class); $rate->setCode($methodCode) ->setPrice(5.00); $address = $objectManager->create(AddressInterface::class, ['data' => $data]); $address->setShippingMethod($methodCode) ->addShippingRate($rate) ->setShippingAmount(5.00) ->setBaseShippingAmount(5.00); $quote->addAddress($address); } $quote->setIsMultiShipping(1); $quoteRepository->save($quote); Resolver::getInstance()->requireDataFixture('Magento/Multishipping/Fixtures/billing_address.php'); Resolver::getInstance()->requireDataFixture('Magento/Multishipping/Fixtures/items.php'); $quote = $quoteFactory->create(); $quoteResource->load($quote, 'multishipping_quote_id', 'reserved_order_id'); /** @var PaymentInterface $payment */ $payment = $objectManager->create(PaymentInterface::class); $payment->setMethod('checkmo'); $quote->setPayment($payment); $quote->collectTotals(); $quoteRepository->save($quote);