/** * Applies Coupon in Cart, and flushes it * * @param CartCouponOnApplyEvent $event Event */ public function onCartCouponApply(CartCouponOnApplyEvent $event) { $cart = $event->getCart(); $coupon = $event->getCoupon(); /** * We create a new instance of CartCoupon. * We also persist and flush relation */ $cartCoupon = $this->cartCouponFactory->create()->setCart($cart)->setCoupon($coupon); $this->cartCouponObjectManager->persist($cartCoupon); $this->cartCouponObjectManager->flush($cartCoupon); $event->setCartCoupon($cartCoupon); }
/** * Creates a new CartCoupon instance. * * @param CartCouponOnApplyEvent $event Event */ public function createAndSaveCartCoupon(CartCouponOnApplyEvent $event) { $cartCoupon = $this->cartCouponManager->createAndSaveCartCoupon($event->getCart(), $event->getCoupon()); $event->setCartCoupon($cartCoupon); }