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 Detail

      • getCouponForCode

        java.util.Optional<AbstractCouponModel> getCouponForCode​(java.lang.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

        java.util.Optional<AbstractCouponModel> getValidatedCouponForCode​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.String couponCode)
        Releases coupon provided in couponCode.
        Parameters:
        couponCode - Coupon code to release
      • redeem

        boolean redeem​(java.lang.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​(java.lang.String couponCode,
                              OrderModel order)
        Redeems coupon (called when order is placed).
        Parameters:
        couponCode - Coupon code to redeem
        order - OrderModel to redeem coupon
        Returns:
        CouponResponse