InAme19 Posted June 2, 2009 Share Posted June 2, 2009 Bonjour,j'ai un petit soucis avec le module Cadeau d'anniversaire v1.0.Le module génère des codes de bon de réduction lorsque c'est l'anniversaire d'un client. Le problème est que ces codes sont tous identiques et s'appellent "birthday". Alors lorsqu'un client veux utiliser ce bon il a le message suivant: Il y a 1 erreur : 1. ce bon de réduction a expiré (limite d'usage atteinte)Comment faire pour générer des codes de bon de réductions différents? Link to comment Share on other sites More sharing options...
InAme19 Posted June 2, 2009 Author Share Posted June 2, 2009 Bon j'ai réussi à résoudre le problème.Dans birthdaypresent.php, dans la fonction createTodaysVouchers(), il suffit d'attribuer un nom aléatoire au bon de réduction.Pour cela lorsque l'on assigne le nom du bon, $voucher->name = "birthday"il faut remplacer birthday par un code aléatoire, ainsi tous les bons auront des noms différents.Ça à l'air de marcher ainsi.Par contre je viens de m'apercevoir, en faisant des tests, que l'on peut changer sa date d'anniversaire et ainsi bénéficier de plusieurs bons de réduction! C'est vraiment très gênant, surtout que les bons de réduction des anniversaires sont cumulables! Je vais regarder ça ^^ Link to comment Share on other sites More sharing options...
Maxime. Posted September 12, 2009 Share Posted September 12, 2009 Hello, j'ai effectivement le même problème sur mon site et je suis etonné que cela n'est pas été corrigé.Mais tu fais comment pour le remplacer par un code aleatoire ? ?Merci Link to comment Share on other sites More sharing options...
micasso Posted September 15, 2009 Share Posted September 15, 2009 Bonjour,J'ai effectivement le même problème...et il semblerait qu'il ne soit pas corrigé dans la nouvelle version.Pour éviter tout doublon, je vais concaténer le mot "birthday" avec le n° d'ID du champ en question.A+ Link to comment Share on other sites More sharing options...
Maxime. Posted September 15, 2009 Share Posted September 15, 2009 Salut,Je veux bien que tu m'indique le bout de code a mettre s'il te plait Link to comment Share on other sites More sharing options...
Snowball Posted November 19, 2009 Share Posted November 19, 2009 Pareil ... tu peux partager ton bout de code ? Ce serait vraiment sympa, car là on reste un peu sur notre faim. Link to comment Share on other sites More sharing options...
micasso Posted November 20, 2009 Share Posted November 20, 2009 Bonjour,Je ne suis pas du tout un spécialiste. C'est un informaticien qui se charge des mises en place et corrections. Cette gestion anniversaire n'est pas encore en place mais devrait se faire prochainement. Selon lui, ce serait l'ID client qui serait concaténé au "Birthday" aux dernières nouvelles, car ce serait beaucoup plus simple. Alors, si cela peut vous aider en attendant ... j'en serais ravi ! Link to comment Share on other sites More sharing options...
Ningadaug Posted February 5, 2010 Share Posted February 5, 2010 Bonjour,Même problème pour moi. Les clients dont c'est l'anniversaire reçoivent bien leurs bons de réductions mais ils ne peuvent pas l'utiliser !Quand ils tentent de le faire ils obtiennent le message d'erreur suivant :Il y a 1 erreur : 01. vous ne pouvez pas utiliser ce bon de réductionLes clients sont frustrés et nous écrivent, à ce moment là je leur crée un autre bon ou j'applique le montant de la réduction s'ils ont déjà commandé. C'est vraiment galère et je vais désinstaller le module tant qu'il n'y a pas de solution.Je ne sais pas comment rendre aléatoire le nom du bon de réduction.Quelqu'un pourrait-il nous expliquer ?Merci d'avance. Link to comment Share on other sites More sharing options...
Sam59 Posted May 2, 2010 Share Posted May 2, 2010 Je fais un up sur ce sujet, car je viens moi aussi d'être farcé : "01. vous ne pouvez pas utiliser ce bon de réduction"C'est ennuyeux ça... Link to comment Share on other sites More sharing options...
Ningadaug Posted May 23, 2010 Share Posted May 23, 2010 Bonjour,Je me permets de faire un "up" sur ce problème…Je suis incapable de le faire moi-même mais est-ce qu'on ne pourrait pas modifier la ligne de code : $voucher->name = 'birthday'; pour remplacer 'birthday' par l' ID du client ou son Lastname ?Je ne sais pas comment on peut appeler une donnée dans une fonction :-( $voucher->name = '$user['id_customer']'; ???Merci pour vos lumières ! Link to comment Share on other sites More sharing options...
BVince Posted May 23, 2010 Share Posted May 23, 2010 Bonjour,je vous propose une solution non testée :On commence par ajouter 2 variables et 2 fonctions qui vont permettre de générer un code aléatoire de bon de réduction : private static $array = null; private static $length = 8; public static function getRand( $len = null ){ if( is_null( self :: $array ) ) self :: _genArray( ); if( !is_numeric( $len ) ) $len = self :: $length; $brcode = ''; for( $i = $len; $i > 0; $i-- ) $brcode .= self :: $array[ rand( 0, count( self :: $array ) -1 ) ]; return $brcode; } static public function _genArray( ){ self :: $array = array_merge( range( 'A', 'Z' ), range( '0', '9' ) ); } ensuite on remplace : $voucher->name = 'birthday'; par $voucher->name = $this->getRand(10); ici 10 = nombre de caractères du code bon de réduction, si on ne met rien alors le code fera 8 caractères.j'attends vos retours sur le sujet... ;-) Link to comment Share on other sites More sharing options...
BVince Posted May 26, 2010 Share Posted May 26, 2010 Quelqu'un a-t-il essayé la modification proposée ? Link to comment Share on other sites More sharing options...
Straigh&Alert Posted November 29, 2010 Share Posted November 29, 2010 up Ce module marche bien ou non? Link to comment Share on other sites More sharing options...
goutbouyo Posted November 29, 2010 Share Posted November 29, 2010 J'ai la version 1.0 de ce module et les bons de réduction créés sont de type BIRTHDAY-XXXX-XXXX.Je n'ai pas modifié la version et cela fonctionne très bien. Link to comment Share on other sites More sharing options...
Straigh&Alert Posted November 29, 2010 Share Posted November 29, 2010 et donc les bons restent valables un an ?à quoi corresponde les X dans le code du bon de réduc ? c'est aléatoire ou cela correspond à la date ( un peu facile à reproduire du coup) Link to comment Share on other sites More sharing options...
goutbouyo Posted November 29, 2010 Share Posted November 29, 2010 Chez moi les bons restent valables 1 mois seulement.J'ai regardé de plus près et le code de réduction est généré de la manière suivante:BIRTHDAY-[iD du client]-[Année en cours] Link to comment Share on other sites More sharing options...
wollanup Posted December 15, 2010 Share Posted December 15, 2010 Bonjour, Très interessé par ce module pour le site que je réalise actuellement, je me suis vite rendu compte qu'il n'est pas fini, voir buggé dans certains cas.j'ai développé qqch pour mon client qui permet de corriger certains bugs tels que:- choix d'une devise quand type de bon = montant sur la commande (sans ça le bon ne fonctionne pas!)- choix du nombre de jours avant anniversaire pour envoyer le bon- choix du temps de validité- choix des options (cumulable ou pas)- test si bon de réduction existe déja (pour les malins qui change de date de naissance comme de chemise)- diverses modifs au template mail (affichage du code de réduc + montant + validité + les conditions écrites en petit si montant minimum etc...) A propos d'éviter les doublons, il ne faut pas modifier le nommage des bons en rajoutant un numéro aléatoire, au contraire, le système actuel est parfait:1. On identifie un bon par son ID client et son année, que demander de plus, il suffit de tester si ce bon existe et bingo.2. Au cas où un utilisateur "pirate" le bon de réduction d'un autre, il ne peut pas s'en servir, le bon est nominatif.3. Et pour ceux qui changent de date, même principe, la vérif sur le nom du bon intervient, le seul cas qui passe, c'est par exemple:anniv' le 31 déc : cadeau, et il change sa date au 1er janvier, il aura un cadeau aussi le lendemain, mais dans ce cas, même s'il change par la suite, il est niqué pour l'année!Pour l'instant, j'ai fait la plupart de ces modifs en dur mais si qqn est intéressé pour les avoir dans la config du module dans le BO, je peux faire ça.Je ne suis pas spécialiste des modules Presta, mais je viens de passer 3 mois sur une boutique (suzy-la-souris.fr) et j'ai bouffé du module et de la modif de classe sur ce site! (ça va être marrant pour les MAJ...)Enfin voilà, je me sens prêt à reprendre ce module existant et à l'améliorer, il me faut juste quelques encouragements, et on verra la suite PS : Je précise pour ceux qui ne reçoive pas le mail alors que le fichier cron.php affiche OK, qu'il faut que le client soit validé, càd au moins une commande payée. Link to comment Share on other sites More sharing options...
luigi1912 Posted June 29, 2011 Share Posted June 29, 2011 Bonjour,J'utilise le module cadeau d'anniversaire.Le cron a été configuréLe client reçoit bien le mail.le bon de reduc est bien généré et il est visible dans l'onglet paiement /Bons de reduction.Le code reduc est BIRTHDAY pour tous les clients dont c'est l'anniversaire.Au moment de l'utiliser :Il y a 1 erreur : 1. vous ne pouvez pas utiliser ce bon de réductionj'ai vu que plusieurs ont ce pb mais personne ne semble l'avoir résoluVisiblement ca pose un pb si plusieurs clients ont le même nom pour leur réduction !y a t'il une solution ? MerciPrestashop 1.2.5.0 et module cadeau d'anniversaire 1.0 Link to comment Share on other sites More sharing options...
luigi1912 Posted July 4, 2011 Share Posted July 4, 2011 Bonjour à tous,Personne n'a donné suite à mon précédent post.j'ai réflechi un peu et je vous fait part de mes constatations.Le module cadeau d'anniversaire tel que je l'ait ne marche pas.Tous les jours, il génère un bon de réduction à tous les clients né ce jour là.Mais ce bon n'est pas utilisable : une erreur apparait.Si je renomme le bon de mon client ca fonctionne.Le pb vient du fait que tous les bons de réduction portent le même nom : "birthday"Je ne suis pas un grand informaticien et j'y connais guère en php, mais c'est codé dans le fichier suivant :birthdaypresent.php dans le répertoire modules/birthdaypresent :La ligne qui déconne est pour moi la suivante :$voucher->name = 'birthday';Que l'on trouve en ligne 109(voir extrait) $voucher = new Discount(); $voucher->id_customer = $user['id_customer']; $voucher->id_discount_type = Configuration::get('BIRTHDAY_DISCOUNT_TYPE'); $voucher->name = 'birthday'; $voucher->description[Configuration::get('PS_LANG_DEFAULT')] = $this->l('Your birthday present !'); $voucher->value = Configuration::get('BIRTHDAY_DISCOUNT_VALUE'); $voucher->quantity = 1; Quelqu'un a t'il sérieusement résolu ce bug ?SI oui, merci de me faire passer la modif de code à faire !Existe t'il une autre version de ce module ?Merci de votre aide ! Link to comment Share on other sites More sharing options...
luigi1912 Posted July 4, 2011 Share Posted July 4, 2011 Salut,je fais les questions et les réponses !J'ai fouillé sur le forum en anglais (je suis aussi fort en anglais qu'en php, c'est dire !)Et je crois avoir trouvé une solution.ici :http://www.prestashop.com/forums/viewthread/27706/development/solved_birthday_present_module__dot__dot__dot_/En fait, si j'ai bien compris, il faut remplacer $voucher->name = 'birthday';par $voucher->name = 'BIRTHDAY-'.intval($voucher->id_customer).'-'.date('Y'); Qui est censé rajouter le n° de client et l'année en cours !Je le teste et demain, je vous tiens au courant !a + Link to comment Share on other sites More sharing options...
luigi1912 Posted July 6, 2011 Share Posted July 6, 2011 Bon, c'est encore moi,Je me sens un peu seul ici.La modif que j'ai faite semble marcher. J'ai bien généré des coupons de réductions, tous différents dont un que j'ai pu utiliser.Je considère que c'est résolu.Si il apparait des soucis, je le posterai ici, sinon c'est que je suis content de ma modif.Merci Link to comment Share on other sites More sharing options...
luigi1912 Posted July 12, 2011 Share Posted July 12, 2011 Bon, je confirme, cela fonctionne. j'ai même des vrais clients qui ont pu faire des vrais commandes avec des vrais réductions.Super ! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now