Dheeraj Kumar Product Portfolio

Project 3 - Design a backend coupon creation system for an ecommerce company

Note - This was done as part of an assignment work. To limit the scope this is being done only for one coupon type which is cashback coupons
 
Problem statement - Design a complete coupon system.
Assumptions -
  1. We are designing this for a grocery ecommerce company. Let’s call it ‘DailyFresh’
  1. Flat discount coupon system already exists (Example - Apply ‘SUPER’ and get flat 40% off upto Rs 50)
  1. So we are designing a cashback coupon system.
Why -
  1. Today, discount coupons are the only systemic lever for promotions and there is a need to diversify. The current discount coupons work like this - (Example - Apply ‘SUPER’ and get flat 40% off upto Rs 50). So if a user applies such a coupon on a basket size of Rs 400, the customer would get a flat discount of Rs 50 and would have to pay just Rs 350.
  1. Benefits of cashback coupons over discount coupons?
    1. Extra money gets added to customers' wallets, unlike a direct cash discount on a product. They can use this extra money in the wallet to purchase more.
    2. This ensures that the customer will use the services for a longer time.

Requirements -

Backend changes -

Admin Coupon Creation -
Admin capability to create, modify, delete coupons with restricted permissions.
Define the following fields for each coupon -
Title
Column 1
Column 2
Column 3
Column 4
Field in the form
Type
mandatory or optional
Remarks
Coupon Code
alpha-numeric
mandatory
This will be visible to the customer in the UI
Description
text
mandatory
This will be shown to the customer in the UI.
Start Date
date
mandatory
Date of activation
End Date
date
mandatory
Date of expiry
Coupon type
drop-down
mandatory
The drop down will have two options.                        A) Option 1 - Fixed cashback.  Example - Rs 50 cashback over a minimum cart value of Rs 200. So for a cart value of Rs 100 there is zero cashback and for a cart value of Rs 200 and above there is a cashback of Rs 50.                                                       B) Option 2 - Dynamic cashback amount.  Example - Rs 10 cashback per Rs 100 of cart for a minimum cart value of Rs 200. So for a cart value of 100, there is zero cashback and for a cart value of Rs 450 there would be a cashback of Rs 45
Fixed cashback amount
num
mandatory
This field will be active only if the cashback type selection is 'fixed cashback'.  Need a tool tip (grey text) explaining - 'For Rs 50 cashback enter 50'
Dynamic cashback amount
num
mandatory
This field will be active only if the cashback type selection is 'dynamic cashback'.  Need a tool tip (grey text) explaining - 'Please enter cashback amount per Rs 100 of cart value'
Min cart amount
num
mandatory
Self explanatory. This is the min cart value required to avail the offer
Maximum cashback amount
num
optional
Need a tool tip (grey text) explaining- 'Enter the upper limit of cashback per order. Leave blank if there is no upper limit'
Show in applicable coupon suggestions ("Available coupon")
check-box
optional
If checked, the coupon will get populated in “available coupons” section in app/desktop
Number of redemption per customer
num
optional
Need tool tip (grey text) explaining - ‘Leave blank for unlimited redemptions per customer’.  Once this number is reached, the coupon should no longer reflect in the app/desktop in the “available coupons” section.
Number of redemption per coupon
num
optional
Maximum number of redemptions for each coupon to restrict overspending. If left blank, assume infinite redemption.  Need tool tip (grey text) explaining - ‘Leave this blank for infinite redemption’.  Once this number is reached, the coupon should no longer reflect in the app/desktop in the “available coupons” section.
Success Message
text
mandatory
Will be shown to the customer once the coupon is applied successfully.  Need tool tip (grey text) explaining - ‘This will be shown to user as success message’
Error message
text
mandatory
This has been addressed in the 'other requirements' section
Choose City
Multi-select
mandatory
Excluded Members
upload excel
optional
This is to ensure blacklisted customers don't get these benefits. File format and template needs to be decided
Upload Member List
upload excel
mandatory
The user who is creating the coupon should see an option to attach a file with a list of members applicable. File format and template needs to be decided.
Remarks
text
optional
For internal use. Input any remarks as required.
 
Other requirements -
  1. Ability to clone coupons.
  1. Ability to check history at a coupon level in the admin.
  1. UI will allow customer interaction on the “Available Coupons” section. Customers can click on the coupon to apply it.
  1. Error message - Logic needs to be built for different error messages in case of different failure scenarios.
    1. Low cart value - The message need to show - ‘Insufficient cart value. Please add products worth Rs x to avail this offer. The amount x needs to be calculated by the system.
    2. Incorrect coupon code entered - This might happen when a customer is typing out the coupon code instead of selecting it from the ‘available coupons’ section and makes a typo. The message need to show - ‘Incorrect coupon code entered. Please enter the correct code.’
    3. Others - Generic error message. ‘Coupon application failed. Please try again’
Admin Report -
Create reporting capability to assess performance of coupons
  1. Ability to generate Coupon Redemption Report -
    1. Fields needed in the report: City, Coupon code, Member Name, Member ID, Member email, Cashback Value Redeemed, Redeemed Date, Order Date. Other fields could be added as per requirements in the future.
Future scope -
This cashback system can be modified into a loyalty program system where the wallet cashbacks are turned into a coin earned, and instead of the need for applying a coupon code, it could apply to every order.
badge