Magento 2: Apply coupon code programmatically
-
06-04-2021 - |
Question
I want to apply coupon code programmatically when the condition is true. If condition false coupon code should be not applied.
Please help me.
Solution
You can try this below code :
Construct Method :
protected $cart;
public function __construct(
\Magento\Checkout\Model\Cart $cart
){
$this->cart = $cart;
}
Then, you can use this below code in your function :
$cart = $this->cart;
$couponCode = 'your_coupon_code';
if(condition true)
{
$quote = $cart->getQuote()->setCouponCode($couponCode)->collectTotals()->save();
} else {
$quote = $cart->getQuote()->setCouponCode('')->collectTotals()->save();
}
Object Manager Method :
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$cart = $objectManager->get('\Magento\Checkout\Model\Cart');
$couponCode = 'your_coupon_code';
if(condition true)
{
$quote = $cart->getQuote()->setCouponCode($couponCode)->collectTotals()->save();
} else {
$quote = $cart->getQuote()->setCouponCode('')->collectTotals()->save();
}
Note : Use construct method instead of object Manager.
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange