tomtotom250 Posted October 4, 2010 Posted October 4, 2010 Bonsoir à tous,Je pensais que cela existait déjà mais ce n'est apparemment pas le cas.Aujourd'hui, avec le module existant (a moins que je me trompe) quand un parrain parraine son filleul, si celui ci commande, les deux reçoivent un bon de réduction de X euros ou X%.Je trouve, mais suis je le seul à le penser? Qu'il est intéressant de pouvoir choisir que le filleul n'ait pas de réduction sur sa commande, mais que seul le parrain soit récompensé d'une réduction.(C'est un peu le système du site vente privée, et je trouve ça pas mal..)Bref est ce compliqué a faire comme modification ?L'un de vous a une idée ? Share this post Link to post Share on other sites More sharing options...
BVince Posted October 5, 2010 Posted October 5, 2010 Bonjour,Tu as 2 solutions pour ne pas attribuer un bon de réduction au filleul, soit tu court-circuites le lancement de la fonction d'attribution, soit tu cour-circuites le contenu de la fonction.SOLUTION 1 - dans le fichier referralprogram.php, tu as ces lignes de code à la ligne 435 if ($referralprogram->registerDiscountForSponsored(intval($params['cookie']->id_currency))) { $discount = new Discount(intval($referralprogram->id_discount)); if (Validate::isLoadedObject($discount)) { $data = array( '{firstname}' => $newCustomer->firstname, '{lastname}' => $newCustomer->lastname, '{voucher_num}' => $discount->name, '{voucher_amount}' => Tools::displayPrice(floatval(Configuration::get('REFERRAL_DISCOUNT_VALUE_'.intval($cookie->id_currency))), intval(Configuration::get('PS_CURRENCY_DEFAULT')))); Mail::Send(intval($cookie->id_lang), 'referralprogram-voucher', $this->l('Congratulations!'), $data, $newCustomer->email, $newCustomer->firstname.' '.$newCustomer->lastname, strval(Configuration::get('PS_SHOP_EMAIL')), strval(Configuration::get('PS_SHOP_NAME')), NULL, NULL, dirname(__FILE__).'/mails/'); } } donc tu peux les effacer ou les mettre en commentaire avec /* code */SOLUTION 2 - dans le fichier ReferralProgramModule.php, tu as à la ligne 65 public function registerDiscountForSponsored($id_currency) { if (!intval($this->id_customer) OR intval($this->id_discount) > 0) return false; return $this->registerDiscount($this->id_customer, 'sponsored', $id_currency); } que tu remplaces par public function registerDiscountForSponsored($id_currency) { return true; } PS : je n'ai pas testé mais je pense que ça marche avec l'une des 2 modifs.....tiens moi au courant. Share this post Link to post Share on other sites More sharing options...
tomtotom250 Posted October 5, 2010 Posted October 5, 2010 Ah j'avais pas vu ta réponse!Super je test ça... et je te dis Share this post Link to post Share on other sites More sharing options...
tomtotom250 Posted October 5, 2010 Posted October 5, 2010 Bonjour,Tu as 2 solutions pour ne pas attribuer un bon de réduction au filleul, soit tu court-circuites le lancement de la fonction d'attribution, soit tu cour-circuites le contenu de la fonction.SOLUTION 1 - dans le fichier referralprogram.php, tu as ces lignes de code à la ligne 435if ($referralprogram->registerDiscountForSponsored(intval($params['cookie']->id_currency))) { $discount = new Discount(intval($referralprogram->id_discount)); if (Validate::isLoadedObject($discount)) { $data = array( '{firstname}' => $newCustomer->firstname, '{lastname}' => $newCustomer->lastname, '{voucher_num}' => $discount->name, '{voucher_amount}' => Tools::displayPrice(floatval(Configuration::get('REFERRAL_DISCOUNT_VALUE_'.intval($cookie->id_currency))), intval(Configuration::get('PS_CURRENCY_DEFAULT')))); Mail::Send(intval($cookie->id_lang), 'referralprogram-voucher', $this->l('Congratulations!'), $data, $newCustomer->email, $newCustomer->firstname.' '.$newCustomer->lastname, strval(Configuration::get('PS_SHOP_EMAIL')), strval(Configuration::get('PS_SHOP_NAME')), NULL, NULL, dirname(__FILE__).'/mails/'); } } donc tu peux les effacer ou les mettre en commentaire avec /* code */ Alors j'ai pas trouvé ces lignes (je suis sous la version 1.3)Donc du coup j'ai regardé la solution 2 SOLUTION 2 - dans le fichier ReferralProgramModule.php, tu as à la ligne 65public function registerDiscountForSponsored($id_currency) { if (!intval($this->id_customer) OR intval($this->id_discount) > 0) return false; return $this->registerDiscount($this->id_customer, 'sponsored', $id_currency); } que tu remplaces par public function registerDiscountForSponsored($id_currency) { return true; } PS : je n'ai pas testé mais je pense que ça marche avec l'une des 2 modifs.....tiens moi au courant. ÇA MARCHE Le parrain recoit le bon de réduction, mais le filleul lui ne reçoit rien!D'après toi peut il y avoir des "effets secondaires" ? tel que des bugs a droit a gauche à cause de cette modif..Je vais essayer de faire tous les tests possible pour confirmer que c'est bien LA solution En tous cas BRAVO et MERCI !! Share this post Link to post Share on other sites More sharing options...
emilie877 Posted October 14, 2010 Posted October 14, 2010 Bonjourpeux tu me dire si tu as rencontre des problemes en utilisant ce code?Je veux faire la même chose...merci Share this post Link to post Share on other sites More sharing options...
tomtotom250 Posted October 14, 2010 Posted October 14, 2010 Non pour le moment c'est niquel! Share this post Link to post Share on other sites More sharing options...
laurent65200 Posted October 26, 2013 Posted October 26, 2013 bonjour avez vous une idée dans le module ou je peut modifié pour que tous les bon de parrainage ne soit pas cumulable merci Share this post Link to post Share on other sites More sharing options...
semor Posted January 8, 2014 Posted January 8, 2014 Petit up du topic qui m'intéresse fortement ! Share this post Link to post 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