extensionFactory = $extensionFactory; $this->ruleRepository = $ruleRepository; $this->coupon = $coupon; $this->storeManager = $storeManager; } /** * @param \Magento\Quote\Model\Cart\CartTotalRepository $subject * @param \Magento\Quote\Api\Data\TotalsInterface $result * @return \Magento\Quote\Api\Data\TotalsInterface * * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterGet( \Magento\Quote\Model\Cart\CartTotalRepository $subject, \Magento\Quote\Api\Data\TotalsInterface $result ) { if ($result->getExtensionAttributes() === null) { $extensionAttributes = $this->extensionFactory->create(); $result->setExtensionAttributes($extensionAttributes); } $extensionAttributes = $result->getExtensionAttributes(); $couponCode = $result->getCouponCode(); if (empty($couponCode)) { return $result; } $this->coupon->loadByCode($couponCode); $ruleId = $this->coupon->getRuleId(); if (empty($ruleId)) { return $result; } $storeId = $this->storeManager->getStore()->getId(); $rule = $this->ruleRepository->getById($ruleId); $storeLabel = $storeLabelFallback = null; /* @var $label \Magento\SalesRule\Model\Data\RuleLabel */ foreach ($rule->getStoreLabels() as $label) { if ($label->getStoreId() === 0) { $storeLabelFallback = $label->getStoreLabel(); } if ($label->getStoreId() == $storeId) { $storeLabel = $label->getStoreLabel(); break; } } $extensionAttributes->setCouponLabel(($storeLabel) ? $storeLabel : $storeLabelFallback); $result->setExtensionAttributes($extensionAttributes); return $result; } }