Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
quote_express_configurable.php
Go to the documentation of this file.
1 <?php
13 
14 require __DIR__ . '/../../../Magento/ConfigurableProduct/_files/product_configurable.php';
15 
17 $objectManager = Bootstrap::getObjectManager();
18 
21 $productRepository = $objectManager->create(ProductRepositoryInterface::class);
22 $product = $productRepository->get('configurable');
23 
25 $options = $objectManager->create(Collection::class);
26 $option = $options->setAttributeFilter($attribute->getId())->getFirstItem();
27 
28 $requestInfo = new \Magento\Framework\DataObject(
29  [
30  'product' => 1,
31  'selected_configurable_option' => 1,
32  'qty' => 100,
33  'super_attribute' => [
34  $attribute->getId() => $option->getId()
35  ]
36  ]
37 );
38 
40 $cart = $objectManager->create(Cart::class);
41 $cart->addProduct($product, $requestInfo);
42 
44 $rate = $objectManager->create(Rate::class);
45 $rate->setCode('flatrate_flatrate');
46 $rate->setPrice(1);
47 
48 $addressData = include __DIR__ . '/address_data.php';
49 $billingAddress = $objectManager->create(Address::class, ['data' => $addressData]);
50 $billingAddress->setAddressType('billing');
51 
53 $shippingAddress->setId(null)
54  ->setAddressType('shipping')
55  ->setShippingMethod('flatrate_flatrate')
56  ->addShippingRate($rate);
57 
58 $cart->getQuote()
59  ->setReservedOrderId('test_cart_with_configurable')
60  ->setBillingAddress($billingAddress)
61  ->setShippingAddress($shippingAddress);
62 
63 $cart->save();
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60