Jump to content

"Bon de réduction" avant les calculs Frais de port


Recommended Posts

Bonjour à tous.

 

 

Est il possible de calculer les frais de port après réduction?

 

Ainsi que les bons de réduction soit appliqué sur les total produits et non sur le total après transport.

 

 

Concretement:

  • J'offre les frais port à partir de 60€ (+précisment les transports sont configuré 0=>60 FPD=5€; >60e=>fdp gatuit)
  • J'offre un bon de réduction de 30€
  • les frais de port standard sont de 5€

Si un client prend un produit à 61€ il paye 31€

Je souhaiterais qu'il paye 36€

 

61€ - 30€ = 31€

==> Aplication de 5€ de frais de port

Total = > 36€

 

En réalité:

61€

==> frais de port offert

61€ - 30€ = 31€

Total = > 31€

 

 

Merci à vous.

Edited by jd440 (see edit history)
Link to comment
Share on other sites

Je crois avoir trouvé la solution.

 

Dans classe/cart.php

L2710

en remplacant

$shipping_cost += $carrier->getDeliveryPriceByPrice($order_total, $id_zone, (int)$this->id_currency);

part

$shipping_cost += $carrier->getDeliveryPriceByPrice(($orderTotalwithDiscounts?$orderTotalwithDiscounts:$order_total), $id_zone, (int)$this->id_currency);

 

 

Il me reste encore des vérifs à faire. mais dans ce cas il calcul le shipping à partir du total avec la réduction

  • Like 4
Link to comment
Share on other sites

J'ai encore des tests à réaliser, mais cela semble fonctionne.

 

  • Le total est bon qu'il y ai ou non un bon.
  • Les factures sont correct.

Celà pourrais être interessant qu'un pro de presta, nous donne son avis.+

 

 

*Il y a une modif de theme à prévoire pour modifier l'ordre total produit, bon de réduction. livraison, total,

Link to comment
Share on other sites

  • 11 months later...

Bonjour,

 

Désolé de déterrer un sujet d'il y a 1 an !

 

Je voulais savoir si cette technique fonctionne sous la 1.6 ? Après avoir fait la modif du fichier cart.php (ligne 2750) et fait le nécessaire pour l'override, rien ne se produit.

 

Je n'ai pas changer l'ordre d'apparition sur le panier en front ? (c'est pas mon code et je suis loin d'être un développeur...) Est ce que cela pourrait venir de ça ?

 

Merci pour la réponse.

 

Marc.

Link to comment
Share on other sites

  • 4 weeks later...
  • 1 year later...
  • 2 weeks later...
  • 3 months later...

Bonjour, 

 

J'avais une question légale. Quid de la loi sur ce genre de pratique ? 

 

Le mode de calcul des frais de port offerts sont-ils sur le prix d'origine ou le prix après réduction ? Mais du cout, si on repasse sous le seuil de Frais de port offert grace à la réduction, ils redeviennent payants. Réduction déguisée ? Vente additionnelle forcée  (pour avoir de nouveau les FdP offerts)

 

Merci de vos lumières.

Link to comment
Share on other sites

  • 8 months later...

Bonjour à tous ! 

Je Upload cette conversation pour vous REMERCIER !!!! et que ce forum remontent aux oreilles d'autres !!

J'ai trouvé grâce à vous LA SOLUTION !!!! que je cherchais désespérément une solution dans tout les codes php au fil ou mes clients avait trouvés la combine des frais de ports cumulable après réduction même en dessous de 49€ de Frais de port offerts !

J'ai pu enlever le code Transports en Français et en Anglais du site internet (qui lui aussi ce cumuler avec les offres :() et remettre les Tranches des transporteur et tout fonctionne ENFIN grâce à ces 3 foutues lignes de codes qui gênés :D MERRCIIIII

Il faut préciser pour les personnes qui comme moi ont créer suite aux erreurs de frais de port offerts des Codes ''Transports gratuit'', qu'il faut enlever ces codes dédié au transports gratuit et remettre les transporteurs avec des tranches entre X€ et XX€...
N'hésitez pas non plus à vider le cache de votre site au cas ou y'a une erreur et que le site ne fonctionne plus (Paramètres avancés => Performance => en haut à droite y'a une gomme avec marqué Vider Le Cache) et rafraîchir votre page !

 

ENCORE MERCIIIII !

Link to comment
Share on other sites

  • 10 months later...
  • 6 months later...

Bonjour, je rencontre le même problème avec ma boutique Prestashop 1.7.5.

J'ai modifié sans succès le fichier classe/cart.php. Existe-t-il une solution pour résoudre ce problème dans la dernière version de Prestashop ? 

Link to comment
Share on other sites

On 2/19/2014 at 8:14 AM, jd440 said:

Je crois avoir trouvé la solution.

 

Dans classe/cart.php

L2710

en remplacant

$shipping_cost += $carrier->getDeliveryPriceByPrice($order_total, $id_zone, (int)$this->id_currency);

part

$shipping_cost += $carrier->getDeliveryPriceByPrice(($orderTotalwithDiscounts?$orderTotalwithDiscounts:$order_total), $id_zone, (int)$this->id_currency);

 

 

Il me reste encore des vérifs à faire. mais dans ce cas il calcul le shipping à partir du total avec la réduction

Merci. Pour moi c'est oK.

 

Le total avant remise depassait le seuil du franco donc le port etait gratuit alors que le total apres remise etait sous le franco.

 

Je perdais le port a chaque fois. 

 

La modification ( sous 1.6.1.4 c'est vers la ligne 2900) est nikel. 

 

Merci d'avoir partagé.

Link to comment
Share on other sites

  • 2 weeks later...
24 minutes ago, Ric34 said:

Bonjour avez-vous trouver une solution pour PS 1.7(.5) ?

Merci

Nous avons trouvé une solution à notre problème. Nous avons acheté un module qui permet de résoudre le problème.

Link to comment
Share on other sites

On 6/8/2019 at 3:08 PM, Ric34 said:

Ah ok. Je souhaitais ne pas passer par un module mais je veux bien le lien du votre si jamais je ne trouvais pas de solution.

Merci

Bonjour, voici le lien vers le module que nous installé sur notre Prestashop 1.7.5.0 https://addons.prestashop.com/fr/frais-de-port/26428-frais-d-expedition-sans-regles-de-panier-d-achat-rabais.html

Link to comment
Share on other sites

  • 2 months later...

Bonjour,

Il y a un cas particulier qui n'est pas géré par la solution proposée par jd440. 

La solution fonctionne parfaitement en 1.6 (très exactement 1.6.1.15) sauf dans un seul cas : si le client utilise un avoir (via un code de réduction) qui ramène sa commande à 0 € ET si le montant initial du panier (avant l'application du code) était supérieur au montant à partir duquel les frais de ports sont offerts, dans ce cas les frais de ports seront offerts à tort malgré le correctif de jd440.

Pour pallier à ce problème, je propose de modifier ça par la ligne suivante : 

$shipping_cost += $carrier->getDeliveryPriceByPrice(($orderTotalwithDiscounts?$orderTotalwithDiscounts:($orderTotalwithDiscounts == 0?1:$order_total)), $id_zone, (int)$this->id_currency);

Concrètement, j'indique juste que si le montant du panier est à 0, il faut que le transporteur utilise en guise de frais de port le montant de la tranche correspondant au montant de 1 €.

A+

Link to comment
Share on other sites

  • 3 months later...

Hello les devs !

J'ai essayé d'utiliser votre modif de code dans un override de la classe Cart.php, dans un PS 1.6.1.7

Ma logique est assez similaire, à la différence que le calcul des frais de port se fait sur des tranches de poids, et qu'ils sont offerts au dessus de 250€ d'achat.
Je voudrais faire en sorte que les frais de port offerts ne le soient que pour les commandes où le total remisé est supérieur à 250€. 

Mon "frais de port offert" est une règle panier, pour pouvoir offrir vers la France uniquement.

J'ai essayé de glisser ce bout de code à peu à tous les endroits où j'avais une ligne avec $shipping_cost += mais à aucun moment elle ne s'applique.

if($orderTotalwithDiscounts < 250){
	// alors applique ce qui était prévu comme $shipping_cost +=
	$shipping_cost += $carrier->getDeliveryPriceByWeight($this->getTotalWeight($product_list), $id_zone);
} else {
	$shipping_cost += 0;
}

Evidemment pour l'action dans le if, j'ai repris les lignes en $shipping_cost +=
J'ai supprimé le fichier class_index.php à chaque mise à jour.

Sauriez-vous m'aider à aller plus loin ?

Merci !

Edited by sillusion (see edit history)
Link to comment
Share on other sites

  • 2 years later...
Le 29/08/2019 à 11:19 AM, adri87 a dit :

Bonjour,

Il y a un cas particulier qui n'est pas géré par la solution proposée par jd440. 

La solution fonctionne parfaitement en 1.6 (très exactement 1.6.1.15) sauf dans un seul cas : si le client utilise un avoir (via un code de réduction) qui ramène sa commande à 0 € ET si le montant initial du panier (avant l'application du code) était supérieur au montant à partir duquel les frais de ports sont offerts, dans ce cas les frais de ports seront offerts à tort malgré le correctif de jd440.

Pour pallier à ce problème, je propose de modifier ça par la ligne suivante : 

$shipping_cost += $carrier->getDeliveryPriceByPrice(($orderTotalwithDiscounts?$orderTotalwithDiscounts:($orderTotalwithDiscounts == 0?1:$order_total)), $id_zone, (int)$this->id_currency);

Concrètement, j'indique juste que si le montant du panier est à 0, il faut que le transporteur utilise en guise de frais de port le montant de la tranche correspondant au montant de 1 €.

A+

Merci beaucoup!!! C'est exactement ce qu'il me fallait et ça devenait vraiment problématique. Les clients ont tendance à cumuler les points fidélité et se faire de gros plaisir. Au moins ils paieront les frais de port maintenant.

C'est dingue que ce soit pas le fonctionnement natif, et surtout qu'ils aient pas fait de correctif depuis le temps!

En tout cas, sur Presta 1.6.1.24, la solution est validée.

Link to comment
Share on other sites

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