I want to generate alphanumeric coupons for my woo commerece store, including special characters.
is there a way to do it, using the functions and tools available in make.com
I want to generate alphanumeric coupons for my woo commerece store, including special characters.
is there a way to do it, using the functions and tools available in make.com
Hi @Shashwat_Chopra,
A simple way to generate coupon codes would be to convert unique id to Base 64. Like this:
This example above will give you 16-character code including uppercase (A-Z), lowercase (a-z) and numbers (0-9), but not all special characters, only “+” and “/” symbols. Like this:
It would be possible to get exactly what you want including special characters using a Repeater module (from Flow Control) and either Set Variables or Switch modules… but this would use a lot of operations. Is that something you’d like to try?
Interesting question, I generated a 6-character string for your cupon by doing the following:
1-. create an array from a string delimited by . like this using the split fucntion : {{split(“A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.0.1.2.3.4.5.6.7.8.9.!.@.#.$.%.^.&.*.”“”; “.”)}}
2-. And then create six variables, getting a random number for the position of the array
3- Finally put all array values in a single variable.
This will consume only 3 operations and you can store the resulting Cupon on a DB to avoid duplicates.
Hi @Rafael_Sanchez,
That is a really good approach!
While answering this, I built a scenario using Repeater and Aggregator, and it used 18 Operations to generate a 16-character code. Your solution is much, much better than that.
Notes:
I used ABCDEFGHJKMNPQRSTUVWXYZ23456789!@#$%^&
repeated 4 times to allow for repeated characters in the code, and to make it way less likely that a duplicate is generated. You can have more times but there are diminishing returns
I removed ambiguous characters 1ILO0
I used a triple shuffle - you could add more shuffles to randomise the array more but there are diminishing returns
I used substring 0;6
, but you can change the 6
to however long you want your output to be
blueprint.json (2.8 KB)
thank you everyone. loved the replies