I want to apply coupon code programmatically when the condition is true. If condition false coupon code should be not applied.
Please help me.
Magento Stack Exchange is a question and answer site for users of the Magento e-Commerce platform. It only takes a minute to sign up.
Sign up to join this communityYou 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.