19 private $cartItemPersister;
24 private $billingAddressPersister;
29 private $quoteResourceModel;
34 private $shippingAssignmentPersister;
39 private $addressRepository;
55 $this->quoteResourceModel = $quoteResource;
56 $this->cartItemPersister = $cartItemPersister;
57 $this->billingAddressPersister = $billingAddressPersister;
58 $this->shippingAssignmentPersister = $shippingAssignmentPersister;
59 $this->addressRepository = $addressRepository
81 if (!
$item->isDeleted()) {
93 $this->addressRepository->getById(
$billingAddress->getCustomerAddressId());
94 }
catch (NoSuchEntityException $e) {
102 $this->processShippingAssignment(
$quote);
103 $this->quoteResourceModel->save(
$quote->collectTotals());
115 private function processShippingAssignment(
$quote)
123 if (count($shippingAssignments) > 1) {
124 throw new InputException(
__(
'Only 1 shipping assignment can be set'));
127 $this->shippingAssignmentPersister->save(
$quote, $shippingAssignments[0]);
save(\Magento\Quote\Api\Data\CartInterface $quote)
__construct(\Magento\Quote\Model\ResourceModel\Quote $quoteResource, \Magento\Quote\Model\Quote\Item\CartItemPersister $cartItemPersister, \Magento\Quote\Model\Quote\Address\BillingAddressPersister $billingAddressPersister, \Magento\Quote\Model\Quote\ShippingAssignment\ShippingAssignmentPersister $shippingAssignmentPersister, AddressRepositoryInterface $addressRepository=null)