Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ShippingAddressAssignment.php
Go to the documentation of this file.
1 <?php
7 namespace Magento\Quote\Model;
8 
10 {
14  private $shippingAssignmentProcessor;
15 
19  private $cartExtensionFactory;
20 
26  public function __construct(
27  \Magento\Quote\Api\Data\CartExtensionFactory $cartExtensionFactory,
28  \Magento\Quote\Model\Quote\ShippingAssignment\ShippingAssignmentProcessor $shippingAssignmentProcessor
29  ) {
30  $this->shippingAssignmentProcessor = $shippingAssignmentProcessor;
31  $this->cartExtensionFactory = $cartExtensionFactory;
32  }
33 
40  public function setAddress(
43  $useForShipping = false
44  ) {
45  if ($useForShipping) {
46  $quote->removeAddress($quote->getShippingAddress()->getId());
47  $address->setSameAsBilling(1);
48  $address->setCollectShippingRates(true);
49  } else {
50  $address = $quote->getShippingAddress()->setSameAsBilling(0);
51  }
52 
53  $quote->setShippingAddress($address);
54  $cartExtension = $quote->getExtensionAttributes();
55  if ($cartExtension === null) {
56  $cartExtension = $this->cartExtensionFactory->create();
57  }
59  $shippingAssignment = $this->shippingAssignmentProcessor->create($quote);
60  $cartExtension->setShippingAssignments([$shippingAssignment]);
61  $quote->setExtensionAttributes($cartExtension);
62  }
63 }
$quote
$address
Definition: customer.php:38
__construct(\Magento\Quote\Api\Data\CartExtensionFactory $cartExtensionFactory, \Magento\Quote\Model\Quote\ShippingAssignment\ShippingAssignmentProcessor $shippingAssignmentProcessor)