Interface CouponService

All Known Subinterfaces:
CustomerCouponService
All Known Implementing Classes:
DefaultCouponService, DefaultCustomerCouponService

public interface CouponService
Coupon service interface. To be used by facade to query/manage the coupon lifecycle
  • Method Details

    • releaseCouponCode

      void releaseCouponCode(String couponCode, AbstractOrderModel order)
      Release the coupon code from given cart.
      Parameters:
      couponCode - Coupon code to release
      order - AbstractOrderModel to release the coupon from
    • verifyCouponCode

      CouponResponse verifyCouponCode(String couponCode, AbstractOrderModel order)
      Verify if provided couponCode is valid.
      Parameters:
      couponCode - coupon code to validate
      order - order for which coupon should be validated
      Returns:
      CouponResponse containing true if coupon code is valid or false if not.
    • validateCouponCode

      CouponResponse validateCouponCode(String couponCode, UserModel user)
      Validate if provided couponCode is valid.
      Parameters:
      couponCode - coupon code to validate
      user - user for which coupon should be validated
      Returns:
      CouponResponse containing true if coupon code is valid or false if not.
    • getCouponForCode

      Optional<AbstractCouponModel> getCouponForCode(String couponCode)
      Returns Coupon Model object for a given coupon code
      Parameters:
      couponCode - Coupon code to get coupon details for
      Returns:
      AbstractCouponModel
    • getValidatedCouponForCode

      Optional<AbstractCouponModel> getValidatedCouponForCode(String couponCode)
      Returns Coupon Model object for a given coupon code with validation
      Parameters:
      couponCode - Coupon code to get coupon details for
      Returns:
      AbstractCouponModel
    • redeemCoupon

      CouponResponse redeemCoupon(String couponCode, CartModel cart)
      Redeem the coupon code associated with the cart.
      Parameters:
      couponCode - Coupon code to redeem
      cart - CartModel to redeem coupon
      Returns:
      CouponResponse containing true if coupon code has been redeem at cart or false if not.
    • redeemCoupon

      CouponResponse redeemCoupon(String couponCode, OrderModel order)
      Create a coupon redemption instance for the coupon redeemed for the order.
      Parameters:
      couponCode - Coupon code to redeem
      order - OrderModel to redeem coupon
      Returns:
      CouponResponse containing true when coupon redemption instance has been created if a coupon has been redeemed successfully.