tomtotom250 Posted October 4, 2010 Share 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 ? Link to comment Share on other sites More sharing options...
BVince Posted October 5, 2010 Share 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. Link to comment Share on other sites More sharing options...
tomtotom250 Posted October 5, 2010 Author Share Posted October 5, 2010 Ah j'avais pas vu ta réponse!Super je test ça... et je te dis Link to comment Share on other sites More sharing options...
tomtotom250 Posted October 5, 2010 Author Share 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 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. Ç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 !! Link to comment Share on other sites More sharing options...
emilie877 Posted October 14, 2010 Share 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 Link to comment Share on other sites More sharing options...
tomtotom250 Posted October 14, 2010 Author Share Posted October 14, 2010 Non pour le moment c'est niquel! Link to comment Share on other sites More sharing options...
laurent65200 Posted October 26, 2013 Share 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 Link to comment Share on other sites More sharing options...
semor Posted January 8, 2014 Share Posted January 8, 2014 Petit up du topic qui m'intéresse fortement ! 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