Jump to content
anteverce

[ ASTUCE ] Génération de jolis codes de réduction ^^

Recommended Posts

Salut la communauté,

 

Je pose ici une astuce toute simple qui permet de générer de jolis codes de réduction de ce type :

 

VJX7C-RIH7B-12K49

 

 

Ouvrez le fichier js/admin.js, trouvez (vers la ligne 350) :

/* Code generator for Affiliation and vouchers */
function gencode(size)
{
    getE('code').value = '';
    /* There are no O/0 in the codes in order to avoid confusion */
    var chars = "123456789ABCDEFGHIJKLMNPQRSTUVWXYZ";
    for (var i = 1; i <= size; ++i)
        getE('code').value += chars.charAt(Math.floor(Math.random() * chars.length));
}

et ajoutez juste en dessous cette nouvelle fonction :

function genserialnumber(size)
{
    getE('code').value = '';
    /* There are no O/0 in the codes in order to avoid confusion */
    var chars = "123456789ABCDEFGHIJKLMNPQRSTUVWXYZ";

    var serie1 = '';
    var serie2 = '';
    var serie3 = '';

    for (var i = 1; i <= size; ++i)
        serie1 += chars.charAt(Math.floor(Math.random() * chars.length));

    for (var j = 1; j <= size; ++j)
        serie2 += chars.charAt(Math.floor(Math.random() * chars.length));

    for (var k = 1; k <= size; ++k)
        serie3 += chars.charAt(Math.floor(Math.random() * chars.length));

    getE('code').value += serie1+'-'+serie2+'-'+serie3;
}

Puis ouvrez VOTREADMIN/themes/default/templates/controllers/cart_rules/informations.tpl et trouvez :

<a href="javascript:gencode(8);" class="btn btn-default"><i class="icon-random"></i> {l s='Generate'}</a>

et remplacez par :

<a href="javascript:genserialnumber(5);" class="btn btn-default"><i class="icon-random"></i> {l s='Generate'}</a>

Et voilà vos prochains codes de réductions seront générés par trois groupes de 5 lettres ou chiffres :)

 

Si vous mettez genserialnumber(4), ils seront générés par trois groupes de 4 lettres ou chiffres, etc...

 

 

Je trouvais les codes de base, générés par Prestashop, un peu fades ^^
 

Share this post


Link to post
Share on other sites

Bonjour,

 

Saurais-tu comment faire la même opération pour les codes générés via le BO (lors d'un remboursement dans Commandes > remboursement partiel > bon de réduction ?

 

La modification sur admin.js n'impacte pas cette génération de bon.

 

Merci

 

Charles

Share this post


Link to post
Share on other sites

J'ai trouvé une solution, c'est dans AdminOrderController.php. J'ai remplacé sprintf('V%1$dC%2$dO%3$d' par sprintf('V%1$dC%2$dS%3$d'

(ça remplace la lettre O par S) ce qui évite la confusion en O et zéro lors de la saisie du code promo.

// Update the voucher code and name
								foreach ($languages as $language)
									$cart_rule->name[$language['id_lang']] = sprintf('V%1$dC%2$dS%3$d', $cart_rule->id, $order->id_customer, $order->id);
								$cart_rule->code = sprintf('V%1$dC%2$dS%3$d', $cart_rule->id, $order->id_customer, $order->id);
Edited by carlitos666 (see edit history)

Share this post


Link to post
Share on other sites

Bonjour

super cette petite modif, la confusion entre le O et le 0 devenais agaçante.

Savez vous comment faire la même chose pour les codes  lors de la génération de code de réduction aléatoire manuellement depuis le BO

je suis en 1.5.6.1

 

cdlt

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More