PRD

icon picker
V1 Coupon System

Introduction

This document outlines the Product Requirements Document (PRD) for an enhanced coupon system in Agency Handy, modeled after Stripe's coupon system. This system allows businesses to create and manage multiple coupons, offering flexibility in discounts. Customers can redeem multiple coupons simultaneously during checkout, providing more ways to attract and retain clients.

User Stories

Coupon Section:
As a Superadmin, I want to see a dedicated coupon section under services, where I can manage all available coupons.
Create Coupons for Services:
As a Superadmin/Admin, I want to create coupons for specific services (single or multiple), so I can offer targeted discounts.
Set Expiry Dates:
As a Superadmin/Admin, I want to set expiry dates on coupons, ensuring they are available only for a limited time.
Multiple Coupons:
As a Superadmin/Admin, I want to allow customers to apply multiple coupons during checkout, giving them flexibility to combine discounts.
Discount Type:
As a Superadmin/Admin, I want to choose between percentage-based or fixed-amount discounts when creating coupons.
Minimum Order Amount:
As a Superadmin/Admin, I want to set a minimum order value that must be met for a coupon to be applied.
Usage Restrictions:
As a Superadmin/Admin, I want to limit coupons to:
One-time per customer.
New customers only.
Specific clients.
Recurring Service Coupons:
As a Superadmin/Admin, I want to apply coupons to recurring services, either for the first time or indefinitely.
Customer Experience:
As a customer, I want to apply one or more valid coupon codes during checkout, and see the applicable discount reflected in the order total.

Functional Requirements

Coupon Creation:
Coupon Setup:
Creation: Superadmin/Admin can create coupons.
Service Selection: Admin can select one or more services to which the coupon applies. (mandatory)
Discount Type: Choose between percentage-based or fixed-amount discounts.
Discount Value: Set the specific percentage or fixed amount (in the relevant currency for selected services).
Total Number of Redemptions: Define how many times a coupon can be redeemed in total.
Redeem By: Set an optional expiry date for the coupon.
Duration Once Redeemed:
Options:
For the first billing period only.
For every billing period (recurring).
Apply for a specific number of months (Admin can select the duration).
Code Format:
Coupons must be alphanumeric (minimum 6 characters max 12).
Minimum Order Amount:
Option to set a minimum purchase requirement.
If selected, display available currencies and allow setting the amount.
Usage Limit:
Options:
One-time per customer.
New customers only.
Specific clients.
Coupon Status:
Coupons can be made active or inactive.
Coupon Impact:
Coupons apply to the selected service(s) and packages.
once a package is selected apply the coupon then
the discount amount/percent will be applicable to the total amount of the specific service
Coupon Management
View All Coupons:
Superadmin/Admin can access a list of all created coupons with details like name, type, applicable services, discount value, redeem by date, and status.
In service details page “show the active and inactive list of coupons for that specific service”
Edit Coupons:
Superadmin/Admin can edit coupon details such as name, applicable services, active/inactive
Activate/Deactivate Coupons:
Admin can toggle coupon activation or deactivation.
Delete Coupons:
Superadmin/Admin can permanently delete coupons, making them no longer redeemable.
Coupon Redemption
Checkout Process:
Customers can input one or more coupon codes during checkout.
The system validates each coupon code, checking for:
Validity and whether the coupon is active.
Applicability to the selected services.
Minimum order amount, if applicable.
Usage restrictions (e.g., one-time use or new customer-only).
For coupons with 100% discount do not show the payment method directly ask for confirmation and create order.
Multiple Coupon Handling:
Customers can redeem multiple valid coupons at the same time.
Discounts from all valid coupons will apply to the order total.
Display Discounts:
The order summary will show each applied coupon and its corresponding discount.

User Flow

Accessing the Coupon Section:
User: Superadmin/Admin
Action: Logs into Agency Handy.
Action: Navigates to the "Services" section.
Action: Clicks on the "Coupons" tab.
Outcome: Superadmin/Admin can view and manage coupons.
Creating a Coupon:
User: Superadmin/Admin.
Action: Clicks "Create New Coupon."
Action: Fills out required details (name, description, services, discount type, value, minimum order amount, usage limits).
Outcome: The coupon is created and listed.
Redeeming a Coupon:
User: Customer.
Action: Adds services to the cart and proceeds to checkout.
Action: Enters one or more coupon codes.
System: Validates and applies discounts, checking for any restrictions.
Outcome: Discount(s) applied to the order total, and the customer completes the purchase.
Error Handling and Notifications
Invalid or Expired Coupon:
If the coupon code is invalid or expired, the system displays an error message.
Usage Limit Exceeded:
If a customer exceeds the coupon usage limit, the system rejects the code and notifies the customer.
New Customer Only:
If the coupon is limited to new customers, existing customers will see an error message if they attempt to redeem it.

Acceptance Criteria

Coupon Section:
Superadmin/Admin can view, create, and manage coupons.
Coupon Creation:
Superadmin/Admin can create a coupon with all specified features.
Managing Coupons:
Superadmin/Admin can edit, activate/deactivate, or delete coupons.
Redeeming Coupons:
Customers can redeem one or more valid coupons at checkout.
The system validates, applies discounts, and enforces restrictions.
Multiple Coupon Redemption:
The system supports applying multiple coupons, with each valid coupon's discount applied to the order.
References
Stripe
Many request
SPP.CO

FAQ:

If we choose service group and fixed amount discount for a coupon. What happens when we add a service with a new currency in the service group? How do we set a discount amount for the new currency? If there is a minimum order value, how do we get the minimum order value for new currency?
minimum order value not yet
How do we know which user is a new user? We can’t maintain this in catalog. Anyone with a new email can be a new user.
first purchase from an email
Need a maximum allowed coupon character length.
max 12
How to set which service or upsell the coupon is being applied for? Need to update the ui.
done
Coupons aren’t editable usually. Please rethink this one. Check out stripe.
Define ‘New Customer’
first purchase of an email
As we don’t allow zero unit payment via stripe/Paypal. what will be the case for 100% discount?
we will handle it wile ordering show error in payment as there are many variables in this

Change Coupon impact logic
changed to service specific coupons
Notify me once fixed amount logic and minimum order value logic is finalized.
done
Let's say I have a subscription service which costs 10$. I have a coupon which will give me 50% discount. I have purchased service with coupon and service price is 5$.When service will repeat, invoice will be generate for 5$ or with 10$?
check the logic section based on there percentage and coupon logic it will be calculated
What if my one service cycle is in week another service cycle is in day?
it will be updated to cycle in figma
What will happen if I delete coupon before ending coupon cycle? I mean Let's say I have created coupon with 5 cycle. I have deleted coupon after 2 cycle. How user will know he will be charged full amount from next cycle?
@Ali Shaown
before deleting show, a warning that all the discount associated with this coupon will be discontinued
How to handle fraction number of invoice? Like 10.8$
1. Invoice Amount Handling
If the currency supports decimal points: Allow fractions (e.g., $10.8), showing exact values as calculated.
If the currency doesn’t support decimal points: Apply a rule to round the amount to the nearest whole number. For example, for JPY or KRW, a subtotal of 10.8 would be rounded to either 11, 10.2 rounded down to 10.
In invoice if any adjustment is made show “adjusted” in the discount percentage
2. Coupon Creation with Fractional Discounts
Display an Information Message: During the coupon setup process, if the selected service currency doesn’t support decimal points, show an info/warning message:
“Please note: For currencies that do not support decimal points, amounts will be automatically adjusted to the nearest whole number.”
List of Currencies with No Decimal Support: Include a reminder of the main currencies without decimal support:
image.png
Does discount will apply on setup fee?
it is applicable for the total amount of a service. (Service + Setup fee)
it will not increase based on the quantity

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.