Jump to content

[Résolu] -5% de Réduction à Partir de 75 Euros d'Achat ! -- Comment Faire ?


Recommended Posts

bonjour !

INFO : poste plutôt dans le forum développement

édite le fichier /classes/Cart.php

à la ligne 606 environ, à la fin de la fonction

function getOrderTotal($withTaxes = true, $type = 3)



tu trouveras le return du total de la commande par contre !

suffit d'ajouter avant le return un calcul supplémentaire :

donc, pour le

       return $order_total;
   }



de cette même fonction
remplace le par :

       if ($order_total > 75) $order_total *= 95/100;
       return $order_total;
   }




Cette partie peut être bien sur améliorée avec un module qui gère le pourcentage de la remise et son montant d'application
style 2 variables :

Configuration::updateValue('REDUCTION_CARD_POURCENT', 5)
Configuration::updateValue('REDUCTION_CARD_PLAFON', 75)



il faut aussi penser à l'afficher dans le panier avant l'achat :P que le client le voit

Link to comment
Share on other sites

Bonjour Liandri,

MERCI !


édite le fichier /classes/Cart.php

       if ($order_total > 75) $order_total *= 95/100;
       return $order_total;
   }



Kowabonga ! La vie est belle :)

(The Teenage Mutant Ninja Turtles)

Voici le code pour la 1.2 :

Code à rajouter APRES la ligne 606 du fichier /classes/Cart.php de la 1.2 :

Attention ! Je prends la base 100 pour plus de clarté !

if ($order_total >= 100) $order_total *= 95/100;
return $order_total;



Et ça fonctione partout !

Et l'on peut en mettre sur plusieurs niveaux !

Par exemple :

5% de réduction pour 100 Euros

10% de réduction pour 200 Euros

15% de réduction pour 300 Euros

if ($order_total >= 300) $order_total *= 94.446/100;
if ($order_total >= 200) $order_total *= 94.737/100;
if ($order_total >= 100) $order_total *= 95/100;
return $order_total;



Désolé, je ne suis pas programmeur...

Vous allez certainement crier, mais le principal, c'est que cela fonctionne ;)


Cette partie peut être bien sur améliorée avec un module qui gère le pourcentage de la remise et son montant d'application


Je suis prêt à le faire, mais il faudrait m'expliquer comment faire un module...

Un petit lien, peut-être ?


Handy
Link to comment
Share on other sites


5% de réduction pour 100 Euros

10% de réduction pour 200 Euros

15% de réduction pour 300 Euros

if ($order_total >= 300) $order_total *= 94.446/100;
if ($order_total >= 200) $order_total *= 94.737/100;
if ($order_total >= 100) $order_total *= 95/100;
return $order_total;




Pour moi avec les montant plafonds que tu donnes ça serai plus :

if ($order_total >= 300) $order_total *= 85/100;
if ($order_total >= 200) $order_total *= 90/100;
if ($order_total >= 100) $order_total *= 95/100;
return $order_total;



Pour la création d'un module, bah si t'es pas un minimum développeur dans l'âme :(, tu vas avoir du mal à comprendre le langage objet.
Il y a sinon 2 tutos qui explique comment mettre en place des modules simples. Me demande pas où ils sont, j'avais réussie à les avoir, je me les ai imprimé puis je ne les retrouve plus nulle part.
Donc si quelqu'un les retrouve :P

Sinon passe ton post en [Résolu] si c'est le cas ;)

A+

Link to comment
Share on other sites

Bonjour Landri,

Je te renouvelle mes sincères remerciements.

Voici le code final pour la 1.2 à ajouter dans le fichier /classes/Cart.php à la ligne 632 :

Changer le code suivant :

        if ($type == 5) return $shipping_fees;
       if ($type == 6) return $wrapping_fees;
       if ($type == 3) $order_total += $shipping_fees + $wrapping_fees;
       if ($order_total < 0 AND $type != 2) return 0;

       return $order_total;


Par le code suivant :

        if ($order_total >= 100 AND $order_total < 200) $order_total *= 97/100;
       if ($order_total >= 200 AND $order_total < 400) $order_total *= 95/100;
       if ($order_total >= 400) $order_total *= 92/100;
       if ($type == 5) return $shipping_fees;
       if ($type == 6) return $wrapping_fees;
       if ($type == 3) $order_total += $shipping_fees + $wrapping_fees;
       if ($order_total < 0 AND $type != 2) return 0;

       return $order_total;




Pour la création d'un module, bah si t'es pas un minimum développeur dans l'âme :(, tu vas avoir du mal à comprendre le langage objet.
Il y a sinon 2 tutos qui explique comment mettre en place des modules simples. Me demande pas où ils sont, j'avais réussie à les avoir, je me les ai imprimé puis je ne les retrouve plus nulle part.
Donc si quelqu'un les retrouve :P

Sinon passe ton post en [Résolu] si c'est le cas ;)

A+


Bah... Je vais toujours essayer, on verra bien...

Merci,


Handy
Link to comment
Share on other sites

  • 3 weeks later...

Bonjour Landri,

Bah... Maintenant, c'est PayPal qui ne (di)gère pas la réduction...

J'imagine que cela se passe dans le fichier :

/modules/paypal/paypal.php

Certainement en dessous de cette ligne :

// products + discounts - shipping cost

Si quelqu'un avait une idée, elle serait la bienvenue !


Handy

Link to comment
Share on other sites

  • 1 month later...
Salut

as tu trouve la solution
Merci de ta reponse


Salut,

Non, et Prestashop est lamentable pour cela.

En effet, la réduction est bien présente en base de données, et elle fonctionne partout, sauf pour PayPal.

Apparement, lors de l'envoi à PayPal. PrestaShop ne va pas lire la somme à payer dans la base de données. Pourquoi ? Comment ?

C'est d'une consternation affligeante. Impossible de faire une simple réduction avec PrestaShop !

PrestaShop est reparti à sa place naturelle : au placard.

Et il y restera tant qu'il ne gérera pas les promotions et réductions correctement.

Les promotions et réductions forment le socle de tous commerces actuels me semble-t-il.

Je suis revenu à mes premières amours.

Bon courage à vous, je ne peux pas me permettre de perdre du temps à "essayer de...".


Handy
Link to comment
Share on other sites

Salut handy

je test une autre solution comme le code reduction mais automatique, si je trouve je te fais signe
a+ et merci pour ta reponse


Salut,

Si tu veux gérer TOUS types de promotions, réductions du genre :

And, If, Or, plus grand, plus petit, supérieur, X gratuits pour Y achetés, 20% de réduction sur le deuxième (troisième, quatrième...), etc, etc...

Envois-moi un mail privé.

Nota Bene:

Ce n'est PAS avec PrestaShop.

Désolé,

Handy
Link to comment
Share on other sites

  • 3 weeks later...

Salut La Boutique,

Tout d'abord, je tiens à te remercier de ton aide.

J'ai testé ta solution sur le lien que tu me donnais en MP. Donc, je sais qu'elle fonctionne.

Par contre, j'ai tellement hacké PrestaShop sur mon site de tests en LocalHost, que c'est peut-être la raison de son non fonctionnement sur celui-ci...

Il faudrait, comme tu me le conseilles, que j'installe ta solution en réel, ou sur une version non hackée...

Par contre, tout mon temps est prit dans le développement d'autres sites de e-commerce avec une solution cousine à PrestaShop, c'est pourquoi je ne suis plus si souvent sur le forum PrestaShop.

Dès que le temps me le permet, je re-teste et te tiens au courant.

Au plaisir de te lire,


Handy

Link to comment
Share on other sites

  • 2 weeks later...
  • 5 months later...
  • 7 months later...

Perso je préfère ne pas toucher au cœur de PS, donc en fait il y as une solution simple : Crée un bon de réduction de 'x%' et afficher le code du bon de réduction automatiquement si l'achat dépasse la somme 'y'.

Cela oblige l'acheteur a valider le bon de réduction, mais c'est super simple a mettre en place, y as que la template shopping-cart.tpl a toucher.

Si certain ons besoin de cette procédure je la mettrait sur le forum.

++
Mike

Link to comment
Share on other sites

  • 2 weeks later...

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...