cartRepository = $cartRepository; } /** * Recollect totals if customer group change * * @param CustomerResource $subject * @param CustomerResource $result * @param AbstractModel $customer * @return CustomerResource * * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterSave(CustomerResource $subject, CustomerResource $result, AbstractModel $customer) { /** @var Customer $customer */ if ($customer->getOrigData('group_id') !== null && $customer->getOrigData('group_id') != $customer->getGroupId() ) { try { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->cartRepository->getActiveForCustomer($customer->getId()); $quote->setCustomerGroupId($customer->getGroupId()); $quote->collectTotals(); $this->cartRepository->save($quote); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { //no active cart for customer } } return $result; } }