sariha Posted April 12, 2010 Share Posted April 12, 2010 Bonjour à tous,Mon boss à eu une bonne idée de promo : deux articles au choix pour un montant de 10€Je me suis donc mis en quete d'un module de discount, mais je n'ai pas trouvé grand chose,à part le "better together" qui modifie plusieurs fichiers au coeur de prestashop.finalement, j'ai opté pour une solution maison : étendre la fonction "bon de réduction" de prestashop, même si là aussi il s'agit de modifier un fichier au coeur de prestashop : la classe Discount.Le principe est de proposer une réduction variable pour atteindre un montant fixé par l'administrateur pour un certain nombre de produits. Par exemple (dans mon cas en fait) Deux Disques pour 10€ (parmi un choix de 4 disques).les produits peuvent avoir un montant variable, la réduction s'adapte pour atteindre le montant cible (10€ dans mon cas).Pour cette astuce il n'y a pas de modification de la base de donnée, mais quelques ajouts.je vous recommande tout de même la plus grande précaution quand à l'utilisation de ce "hack", comme d'hab, sauvegardez vos fichiers originaux et la base de donnée.treve de bavardage, voici les modifications :on ajout simple un nouveau type de discount (il y'en a trois actuellement, on ajoute un quatrième)ajout dans la base de donné (via phpMyAdmin par exemple): INSERT INTO `ps_discount_type` ( `id_discount_type` ) VALUES ( NULL ); INSERT INTO `ps_discount_type_lang` ( `id_discount_type` , `id_lang` , `name` ) VALUES ( '4', '1', 'Target Amount for X products' ); INSERT INTO `ps_discount_type_lang` ( `id_discount_type` , `id_lang` , `name` ) VALUES ( '4', '2', 'montant cible pour X produits' ); à ce stade, vous devriez avoir dans vos bon de réduction un nouveau type de bons.l'etape suivante permet d'ajouter le nouveau type dans la classe Discount.phpfaites une copie du fichier classe/Discount.phpensuite, après la ligne 245, ajoutez le code suivant : /* MODIF SARIHA DISCOUNT BUY X GET DISCOUNT - */ break; case 4: $i=0; foreach ($products AS $product){ if (Product::idIsOnCategoryId($product['id_product'], $categories)){ //tarif auquel appliquer le discount : if($i < (int)$this->minimal){ $i++; $tarifs_a_traiter[] = $useTax ? $product['price_wt'] : $product['price']; } } } if($tarifs_a_traiter AND $i >= (int)$this->minimal){ //si il y'a un tarif à traiter et si on a atteind le nombre de produits minimum à traiter foreach($tarifs_a_traiter as $tarif_a_traiter){ $prix_a_traiter += $tarif_a_traiter; } //si il y'a reduction : $reduc = -($this->value - $prix_a_traiter); if($reduc > 0){ //pour être sur que la reduction est positive ! return $reduc; }else{ return 0; } }else{ return 0; } break; /* FIN MODIF SARIHA */ normalement c'est finit !pour en profiter, il suffit d'ajouter un discount de type "montant cible pour X produits",le champs "Valeur" est le montant cible à atteindrele champs "Montant minimum d'achat" permet de spécifier le nombre de produits différents à atteindre pour que le client bénéficie de la réduction.Les catégories permettent de spécifier dans quelles catégorie les produits sont concernés par cette réductions.pour bien utiliser ce hack, je recommande l'utilisation de l'excellent module qui permet d'ajouter automatiquement les bon au panier, autodiscountcart (gratuit)pour finir ci-joint ma classe Discount.php, vous pouvez simplement remplacer la votre par celle-ci (apres avoir fait une sauvegarde de votre fichier original) et une copie d'ecran avec les explications.j'espere que cette petite chose servira à la communauté Discount.php Link to comment Share on other sites More sharing options...
baal Posted May 21, 2010 Share Posted May 21, 2010 bnjourprobleme similaire que je n arrive pas à resoudre,j aimerai proposer 2 articles prix d'origine 6 euros , les 2 à 10 euros .(articles aux choix dans tout le site)chaque paire de 2 articles à 6 euros donne une remise automatique de 2 euros (seulement les articles à 6euros dispersés sur le site)je veux bien un coup de main, petite remuneration possible merci1 semaine deja que je cherche une solution....... Link to comment Share on other sites More sharing options...
BVince Posted May 22, 2010 Share Posted May 22, 2010 jeromestat,tu as un bon début avec mon module 'autodiscountcart', l'idée serait de tester le panier à chaque update de celui-ci, tu analyses son contenu, tu ajoutes dans le code la création automatique d'un bon de réduction de 2 euros lorsque tu trouves 2 produits à 6 euros et tu l'injectes automatiquement dans le panier. Si le client modifie son panier, la fonction devra revérifier si le bon de réduction est toujours valable ou si il ne faut pas en créer un autre et l'affecter. Il faut aussi penser à supprimer le bon de réduction si le client réduit le contenu de son panier, sinon on va faire grossir la table des bons de réduction sans raison. Je pense que tu peux t'en sortir en modifiant donc le module "AutodiscountCart". Link to comment Share on other sites More sharing options...
baal Posted May 22, 2010 Share Posted May 22, 2010 merci BVINCE....mais suis beginner et un peu perdu pour modifier la prog de prestashop.si cela est simple peux tu me le faire?suis desolé mais je n ai pas le niveau pour cela, merci beaucoup Link to comment Share on other sites More sharing options...
baal Posted June 3, 2010 Share Posted June 3, 2010 toujours personne pour me sauver...j aimerai proposer 2 articles prix d’origine 6 euros , les 2 à 10 euros .(articles aux choix dans tout le site)chaque paire de 2 articles à 6 euros donne une remise automatique de 2 euros (seulement les articles à 6euros dispersés sur le site)je veux bien un coup de main, petite remuneration possible merci Link to comment Share on other sites More sharing options...
vestax Posted December 13, 2011 Share Posted December 13, 2011 Bonsoir Je recherche un module pour pouvoir crée un bon de réduction de 10 ou 15 euros pour un minimum de 2 produits ajouter au panier. Merci d'avance pour votre aide 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