Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
LoadHandler.php
Go to the documentation of this file.
1 <?php
7 
10 use Magento\Quote\Api\Data\CartExtensionFactory;
11 
13 {
17  private $shippingAssignmentProcessor;
18 
22  private $cartExtensionFactory;
23 
28  public function __construct(
29  ShippingAssignmentProcessor $shippingAssignmentProcessor,
30  CartExtensionFactory $cartExtensionFactory
31  ) {
32  $this->shippingAssignmentProcessor = $shippingAssignmentProcessor;
33  $this->cartExtensionFactory = $cartExtensionFactory;
34  }
35 
40  public function load(CartInterface $quote)
41  {
42  if (!$quote->getIsActive()) {
43  return $quote;
44  }
46  $quote->setItems($quote->getAllVisibleItems());
47  $shippingAssignments = [];
48  if (!$quote->isVirtual() && $quote->getItemsQty() > 0) {
49  $shippingAssignments[] = $this->shippingAssignmentProcessor->create($quote);
50  }
51  $cartExtension = $quote->getExtensionAttributes();
52  if ($cartExtension === null) {
53  $cartExtension = $this->cartExtensionFactory->create();
54  }
55  $cartExtension->setShippingAssignments($shippingAssignments);
56  $quote->setExtensionAttributes($cartExtension);
57 
58  return $quote;
59  }
60 }
$quote
__construct(ShippingAssignmentProcessor $shippingAssignmentProcessor, CartExtensionFactory $cartExtensionFactory)
Definition: LoadHandler.php:28