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.
La 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.
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange