Usage of Discount Coupon depends on the pricing policy of the company.
If the pricing policy is 'free + pay per course', then the discount coupons can be used while purchasing a product.
If the pricing policy is 'free + paid membership subscription', then the coupon can be used for the membership subscription.
A Discount Coupon will have the following properties Coupon code, discount, quantity, redeemed count, created date and expiry date
DB schema for discount coupon
Table Name: coupons
| Column_name | type | Description |
|---|---|---|
| id | integer | primary key |
| code | varchar | A unique value |
| quantity | integer | Number of times the coupon can be used |
| redeemed_count | varchar | number of times the coupon is used |
| discount | varchar | discount in percentage |
| expiry_date | date_time | date on which the coupon will expire |
| created_at | date_time | date of which the coupon was created |
| updated_at | date_time | coupon properties updated date |
| deleted_at | date_time | when this coupon was deleted |
Table Name: product_coupons
| Column_name | type | Description |
|---|---|---|
| id | integer | primary key |
| coupon_id | varchar | A unique value |
| product_type | integer | type of the product. this can be 'Course', 'Certification', 'LiveEvent', or Subscription |
| product_id | varchar | On which product, this coupon can be used |
| created_at | date_time | date of which the coupon was created |
| updated_at | date_time | coupon properties updated date |
Table Name: coupon_usages
| Column_name | type | Description |
|---|---|---|
| id | integer | primary key |
| user_id | integer | id of the user who used the coupon |
| coupon_id | integer | references the coupon. |
| product_id | integer | On which product, this coupon was used |
| product_type | varchar | type of the product, this can be 'Course', 'Certification', 'LiveEvent', or Subscription |
| order_id | integer | Order id |
| created_at | date_time | date of which the coupon was created |
| updated_at | date_time |