Interface CouponManagementService

All Known Implementing Classes:
DefaultCouponManagementService

public interface CouponManagementService
Provides methods for managing coupons, like verifying if coupon code is valid or finding all coupons.
  • Method Details

    • getCouponForCode

      Optional<AbstractCouponModel> getCouponForCode(String couponCode)
      Returns Coupon Model object for a given coupon code without validation
      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
    • verifyCouponCode

      CouponResponse verifyCouponCode(String couponCode, AbstractOrderModel abstractOrder)
      Verify if given coupon code is valid.
      Parameters:
      couponCode - Coupon code to check
      abstractOrder - AbstractOrderModel for which the coupon will be redeemed
      Returns:
      CouponResponse containing true if coupon code is valid or false if not, including the message why it is not valid.
    • validateCouponCode

      CouponResponse validateCouponCode(String couponCode, UserModel user)
      Verify if given coupon code is valid.
      Parameters:
      couponCode - Coupon code to check
      user - UserModel for which the coupon will be redeemed
      Returns:
      CouponResponse containing true if coupon code is valid or false if not, including the message why it is not valid.
    • releaseCouponCode

      void releaseCouponCode(String couponCode)
      Releases coupon provided in couponCode.
      Parameters:
      couponCode - Coupon code to release
    • redeem

      boolean redeem(String couponCode, CartModel cart)
      Redeems coupon (called when coupon code is applied in cart). throws CouponServiceException when verify coupon code fails
      Parameters:
      couponCode - Coupon code to redeem
      cart - CartModel to redeem coupon
      Returns:
      boolean true if coupon code could be redeemed at cart or false if not.
    • redeem

      CouponResponse redeem(String couponCode, OrderModel order)
      Redeems coupon (called when order is placed).
      Parameters:
      couponCode - Coupon code to redeem
      order - OrderModel to redeem coupon
      Returns:
      CouponResponse