Jump to content

frais de port en % du montant total de la commande


Recommended Posts

Bonjour la communauté,

je suis entrain de faire un site  mais quelques difficultés, j'aimerais que les frais de port  (transporteur) soit en pourcentage par rapport au prix total de la commande par exemple si le montant total est 1000$ les frais de port doit etre 4% des 1000$.

Mon problème je ne sais pas comment mettre ça en place.

Une bonne volonté pour donner les directives ou me dire comment je peux procéder.merci

 

Bien à vous.

Link to comment
Share on other sites

Bonjour carlosekloou,

 

Prestashop par défaut ne pourra vous permettre de le faire. Il faudra le développer spécifiquement en passant par un override de la méthode Carrier->getDeliveryPriceByPrice() par exemple. Ce qui n'est pas chose simple si vous n'êtes pas développeur. De plus, aurez-vous qu'un seul transporteur ou plusieurs ? Si plusieurs, seront-ils tous en pourcentage ? Avec le même pourcentage ?

 

Une solution simple sans développement serait de créer un pourcentage par tranches : si vous êtes à 4% par exemple, vous pouvez créer plusieurs tranches de prix pour votre transporteur :

- de 0 à 100$ de commande, fdp à 4$

- de 100 à 200$, fdp à 8$, 

- etc...

 

Bien réfléchir au découpage des tranches pour que ce ne soit pas trop pénible à maintenir, tout en créant suffisamment de tranches pour obtenir un niveau maximum de commande de vos clients : jusqu'à quel montant de commande estimez-vous qu'ils vont monter ?

 
kwak
Link to comment
Share on other sites

Pour la solution de développement, il va falloir surcharger la classe CarrierCore de Prestashop,et particulièrement la méthode getDeliveryPriceByPrice().

Pour plus d'infos sur l'override des fichiers coeur de Prestashop : http://doc.prestashop.com/display/PS16/Overriding+default+behaviors

 

Donc pour commencer, créez un fichier /override/classes/Carrier.php ainsi :

<?php
class Carrier extends CarrierCore
{
	public function getDeliveryPriceByPrice($order_total, $id_zone, $id_currency = null)
	{
		//Ici le code qui retourne le montant de vos frais de port en fonction du montant de la commande ($order_total)
	}
}
?>

Je vous laisse entrer le mode de calcul que vous souhaitez et mettre les conditions et tests nécessaires.

 

Cela devrait donner un montant de FDP proportionnel à la commande. A noter qu'il faut avoir au moins un transporteur enregistré.

 

 

Concernant le découpage par tranches de prix, c'est la manière dont fonctionne Prestashop : http://doc.prestashop.com/display/PS16/Managing+Shipping

Et le principe serait de créer plusieurs tranches de 100 à 100 jusque 1000$ par exemple, et de 500 à 500 au dela. Mais c'est une idée, à vous de voir ce qu'il y a de plus simple pour vous.

 

kwak

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

(Prestashop 1.6.0.11)

 

Bonjour et merci beaucoup pour cette explication sur l'override des classes.

 

Ce post m'intéresse parce qu'il me permettra peut-être de corriger le problème que je rencontre ici : https://www.prestashop.com/forums/topic/412598-r%C3%A8gles-paniers-et-frais-de-port-sappliquent-sur-le-total-panier-avant-discount/

 

Je cherche à comprendre le mécanisme qui permet d'afficher le prix des transporteurs (entre autre) et je ne trouve pas quelle page appelle getDeliveryPriceByPrice($order_total, $id_zone, $id_currency = null).

 

Je souhaite vérifier ce que contient $order_total au moment de l'affichage (mon problème est : je pense que ce n'est pas le bon total, mais le total panier avant application des codes promos).

 

Pouvez-vous m'aider à remonter la piste ?

Merci !

 

[EDIT : J'ai fini par trouver, c'est la classe Cart. ]

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

  • 3 years later...

Moi aussi, j'aimerai savoir le solution :mellow:

J'ai sait il y a le plugin pour faire pour le virtuemart: https://open-tools.net/virtuemart/advanced-shipping-by-rules.html

dans ce cas possible pour faire le situation complex par example reduce par le percentage de total d'achat:

Variable=ShipReducedRate; Value=0.1*BasePrice
Name=”Shipping complex function for without TVA”;Condition=contains_only(ShopperGroups, 7);0.001<=Weight<=0.65;ShippingWithTax= Max(6, 25-ShipReducedRate)
Name=”Shipping Full Price”;0.001<=Weight<=0.65;Shipping= 25

pour le conseille de kwak

on pourrai possible faire le class override: 

public function getDeliveryPriceByPrice($order_total, $id_zone, $id_currency = null)

 

mais si le cas est faire avec le transporteur ID, est n'important quel montant, mais sur le percentage de total amount ( 10% PAR EXAMPLE), et aussi pour le certain group client, apparement il n'y aucun developer method sur prestashop, et c'est vrai ce sera très complique pour changer ça j'imagine

 

 

 

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