web-dev-qa-db-fra.com

Qu'est-ce qu'un bon format / syntaxe pour un code promo?

Pour notre boutique en ligne, nous distribuons des codes de réduction (également appelés "code promo" ou "code promotionnel").

Actuellement, ces codes ressemblent à un développeur fou qui a conçu le format:

FCF4A803-18F0-46BE-A14D-6F26101C9E01

En fait, ce développeur fou était moi. J'ai utilisé un GUID.

Maintenant, je recherche un format (au moins légèrement) plus utilisable.

Je peux imaginer quelque chose comme des URL de vidéos YouTube:

BROWqjuTM0g

Ou simplement l'horodatage actuel en ticks:

635507907277936690

Ou l'heure actuelle UNIX Epoch:

1415200070

Ou peut-être un préfixe pour identifier notre produit? Comme par exemple:

PROD1415200070

Ma question:

Comment "concevriez-vous" le format/la syntaxe d'un code promo?

Mise à jour 1:

J'ai oublié de mentionner: nous distribuons plusieurs coupons différents. Donc, quelque chose comme "BUYIT" ou d'autres chaînes significatives ne conviendrait pas. Je suppose que nous avons besoin d'une partie aléatoire.

2
Uwe Keim

Si vous avez besoin d'un grand nombre de codes uniques différents, il importe que l'utilisateur doive le saisir manuellement, et il devra être généré de manière algorithmique.

tapé manuellement

Pour quelque chose qu'ils devront taper, et encore suffisamment au hasard, je l'ai déjà fait en générant une chaîne comme GHJ5-JKG4.

Commencez par choisir un nombre aléatoire entre 0 et 31. (A-Z, 0-9, et enlevez 1, 0, I, O). Ajoutez ce caractère à une chaîne. donc, g puis h puis j etc. Vous aurez ghj5jkg4 en utilisant l'exemple ci-dessus.

Vérifiez cette chaîne pour un langage inapproprié. Vous ne voulez pas générer au hasard quelque chose comme 1fuck3r5. Comme suggéré dans les commentaires, supprimer uniquement les voyelles peut être suffisant, surtout si vous n'utilisez pas de chiffres.

Convertissez-le en majuscules GHJ5JKG4, puis le stocker dans une base de données. Lors de son affichage à l'utilisateur, divisez la chaîne en deux, séparée par un trait d'union GHJ5-JKG4 car les gens ont du mal à se souvenir de plus de 4 caractères.

Lorsque vous vérifiez si elle est valide, supprimez simplement les caractères non alphanumériques et recherchez GHJ5JKG4 dans votre base de données.

Code unique dans l'e-mail

Vous pouvez vous en sortir avec une chaîne plus longue. Ajoutez les dix premiers caractères du hachage MD5 de l'horodatage Unix actuel à un mot-clé par exemple.

FREE8CD89BAB45

Code non unique

Tout ce qui a l'air sympa!

FREESHIPPING de @RomC en est un excellent exemple.

3
evandentremont

Supposons que vous ayez besoin d'un million de codes en haut. Nous utiliserons un schéma convivial qui a un milliard/milliard de combinaisons possibles, mais pourrait être étendu facilement, de sorte que toutes les combinaisons possibles ne donnent pas un code de coupon valide.

Obtenez une liste de 1000 mots non vulgaires courts et fréquents, de préférence de la même catégorie, par ex. juste des noms. Randomisez leur commande. Attribuez à chacun un numéro unique à trois chiffres, entre 0 et 999, pouvant être complété par un zéro (le numéro de ligne d'un fichier texte peut être diminué d'une unité).

Définissez un modèle pour rendre valide un seul nombre sur mille, par exemple chaque quatrième chiffre est le chiffre de contrôle des trois chiffres précédents. Regroupez par triplets de chiffres. Sélectionnez les mots de votre liste secrète qui sont identifiés par ces numéros.

123_456_789_ – 1+2+3=6; 4+5+6=15, 1+5=6; 7+8+9=24, 2+4=6
123645667896
123 645 667 896
rabbit tennis engine water

Ces mots sont plus faciles à retenir et à taper (et à corriger l'orthographe) que les nombres aléatoires.

Vous pouvez même l'internationaliser avec des listes de mots pour d'autres langues qui ont codé arbitrairement les mêmes nombres.

Garten Waage Müll Norden

Acceptez les mots dans n'importe quelle majuscule. Jetez les chiffres et la ponctuation.

C'est juste du haut de ma tête. Demandez aux mathématiciens si un seul chiffre de contrôle suffirait, si vous devez utiliser des listes plus petites ou plus grandes ou si le nombre de mots doit dépendre de la position du mot (c'est-à-dire que 000000000 donne quatre mots différents). Mon seul point est de changer des séquences aléatoires de lettres et de chiffres en mots simples. Une très courte liste de mots pourrait être remplie de mots significatifs pour les activités du site.

2
Crissov

Sans aucune règle supplémentaire qui définirait quelles valeurs peuvent être utilisées pour un code de coupon (ou toute restriction), je recommande quelque chose qui serait (1) facile à retenir et (2) quelque chose qui décrit en quelque sorte le type de remise qui peut être obtenu.

Exemples:

25% DE RABAIS
LIVRAISON GRATUITE
WIDGET123 (Nom du produit comme vous l'avez suggéré - au moins, cela implique que le code de coupon est uniquement pour ce produit spécifique).

1
RomC