![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/module-quote/Model/ |
<?php /** * * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Quote\Model; use Magento\Framework\Exception\LocalizedException; use \Magento\Quote\Api\CouponManagementInterface; use Magento\Framework\Exception\CouldNotDeleteException; use Magento\Framework\Exception\CouldNotSaveException; use Magento\Framework\Exception\NoSuchEntityException; /** * Coupon management object. */ class CouponManagement implements CouponManagementInterface { /** * Quote repository. * * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; /** * Constructs a coupon read service object. * * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository Quote repository. */ public function __construct( \Magento\Quote\Api\CartRepositoryInterface $quoteRepository ) { $this->quoteRepository = $quoteRepository; } /** * @inheritDoc */ public function get($cartId) { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->quoteRepository->getActive($cartId); return $quote->getCouponCode(); } /** * @inheritDoc */ public function set($cartId, $couponCode) { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->quoteRepository->getActive($cartId); if (!$quote->getItemsCount()) { throw new NoSuchEntityException(__('The "%1" Cart doesn\'t contain products.', $cartId)); } if (!$quote->getStoreId()) { throw new NoSuchEntityException(__('Cart isn\'t assigned to correct store')); } $quote->getShippingAddress()->setCollectShippingRates(true); try { $quote->setCouponCode($couponCode); $this->quoteRepository->save($quote->collectTotals()); } catch (LocalizedException $e) { throw new CouldNotSaveException(__('The coupon code couldn\'t be applied: ' .$e->getMessage()), $e); } catch (\Exception $e) { throw new CouldNotSaveException( __("The coupon code couldn't be applied. Verify the coupon code and try again."), $e ); } if ($quote->getCouponCode() != $couponCode) { throw new NoSuchEntityException(__("The coupon code isn't valid. Verify the code and try again.")); } return true; } /** * @inheritDoc */ public function remove($cartId) { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->quoteRepository->getActive($cartId); if (!$quote->getItemsCount()) { throw new NoSuchEntityException(__('The "%1" Cart doesn\'t contain products.', $cartId)); } $quote->getShippingAddress()->setCollectShippingRates(true); try { $quote->setCouponCode(''); $this->quoteRepository->save($quote->collectTotals()); } catch (\Exception $e) { throw new CouldNotDeleteException( __("The coupon code couldn't be deleted. Verify the coupon code and try again.") ); } if ($quote->getCouponCode() != '') { throw new CouldNotDeleteException( __("The coupon code couldn't be deleted. Verify the coupon code and try again.") ); } return true; } }