SUGGESTION: a simple way to generate massive and personalized discount coupons

7 years ago
Some storeowners might want to generate massive discount coupon to hand them out to his customers, or to customers of his affiliates or to promoters for distribution to other people. Here is a very simple way to enhance Nop for this:

Create a new property for discounts: "Coupon Type":
Regular: The coupon remains as now just using the CouponCode



Masive for Registered Customers: The coupon (Extended-Copupon-Code) will be formed by 2 segments (separated by a hypen "-": CouponCode-Validator.
The Validator (V) is the value resulting of applying a "Validating Function" ( VF(x) ), which generates a 5 digits quasi-random integer number from the CustomerId: V= VF(CustomerId). The Validation Function will be commented later.

The store owner creates a discount with coupon code for example "ABC123" and then with Excel function generates the validator for each of the correponding customersand includes it in the  discount coupon. Example:
     CustomerID     Validator    Extended-Coupon-Code
          5                    53137       ABC123-53137
          10                 6274           ABC123-06274
          123               67182      ABC123-67182
          234               66834     ABC123-66834
          56789          04878     ABC123-04878

Then when in the store the customer types the coupon, Nop will just check that the Validator is equal to VF(CustomerId).

Something similar can be done to distribute codes to customers associated to affiliates. In this case the Validator is generated and tested with the AffiliatedId.


Masive for Non-Registered Customers, or for Promoters, Vendors, etc.: The coupon (Extended-Copupon-Code) will be formed by 3 segments (separated by a hypen "-": CouponCode-CouponNumber-Validator.
In this case the CouponNumer is any number (sequential, random or assigned as Id to someone) which identifies the beneficiary (i.e. non registered potential customer) or and intermediary (promoter, vendor, etc.) who distributes the coupon to one or several persons. The validator and validation is done applying V=VF(CouponNumber). Example for a discount generated with coupone code "XYZ":
   CouponNumber        Validator      Coupon
             10            06274  XYZ-10-06274
             20            12549  XYZ-20-12549
             30            18824  XYZ-30-18824
             40            25099  XYZ-40-25099
             50            31374  XYZ-50-31374


The Validation Function
There are many options for the validation Function VF(X). Here is a simple one: Take the first 5 decimals of the result of dividing X by number Pi (with just 5 decimals: 3.14159) added to a MaskingNumber which is an encryption key (alike the "Encryption private key" for Credit Cards. Example 1234567890) whose first 5 digits (i.e. 0.12345) will be used as the MaskingNumber. To prevent hacking this encryption key can be changed from time to time. Example for X=10; encryption key=1234567890 and thus MaskingNumber=0.12345:

V= FirstFiveDigits of: X/(Pi+MaskingNumber)= 10/(3.14159 + 0.12345) = 10/(3.26504)= 3.062749614

V=06274

For this type of code a new type of Discount limitation could be added: N times per CouponNumber if you one to limit the number of persons the promoter can give the same coupon.
7 years ago
Like this alot! We are looking for something similar. Where do I vote???
7 years ago
eadameg wrote:
...

Thanks a lot, Eduardo!

wunpac wrote:
Where do I vote???

here
6 years ago
Hello,
we are in the early stages of developing a user face discount code option, we will require large amounts of generated codes, is there an update on this development?

thanks, Steve
6 years ago
immij wrote:
is there an update on this development?

Not yet
6 years ago
It was a great idea.
What do you think of putting it somewhere in the roadmap? ;)
6 years ago
zar wrote:
What do you think of putting it somewhere in the roadmap? ;)

It still has "proposed" (not planned to be done in the near time)
6 years ago
Wouldn't this just litter the db with unnecessary coupon codes? Wouldn't restrictions and limitations on coupon codes eliminate the need for personalize or validation. I understand wanting to track marketing efforts by employees or affiliates, which can easily be accomplished with the current setup. Sorry, I am just trying to understand why this would be viable.
6 years ago
asilentnoize wrote:
Wouldn't this just litter the db with unnecessary coupon codes? Wouldn't restrictions and limitations on coupon codes eliminate the need for personalize or validation. I understand wanting to track marketing efforts by employees or affiliates, which can easily be accomplished with the current setup. Sorry, I am just trying to understand why this would be viable.

The proposed precisely simplifies the creation of massive coupons.

In the present setup if you have to give away say 10 k coupons you have to create 10 k coupons (impossible if you want to do it from the back end) with the corresponding load to the data base and server.
With the proposed setup, for that example,  you just have to create one coupon and one db record. At the same time it also gives you a way to keep track of the use and/or distribution of your coupons.

In the proposed method  you just basically create one coupon for each discount campaign  and its number for each user has one part or segment which is the same for all users (actually the discount coupon number); the second segment is another set of digits (which could be the customer-Id of the beneficiary) and the third segment is a strong validator to assure that the first 2 segments are valid and match with each other.
5 years ago
Any updates on this?  I'm looking for a way to have unique coupons sent out to abandoned cart emailed customers?  So these people would not have a customer number yet.

Any ideas?