Jump to content

Frais de port par tranche de poids ET de prix


Recommended Posts

Bonjour,

 

Je suis actuellement en train de réaliser un site de e-commerce et mon client souhaiterais que les frais de ports soient gérable par poids et par prix en même temps. Sauf erreur de ma part (je n'ai pas une grande expertise de prestashop, donc n'hésitez pas à me dire si je me trompe) ce n'est pas possible actuellement.

 

J'ai donc orienté son choix vers la gestion par tranche de poids, cependant il souhaiterait malgré tout que le franco port soit fixé en fonction du poids ET du prix. Concrètement j'aimerai savoir s'il est possible de forcer le coût des frais de transport via un hook pour ce cas particulier (précisément ici lorsque la commande est supérieur à 400€HT et fait moins de 100Kg, indépendamment de la zone et du pays) ?

 

Autre petit point (quoique sans doute pas si annodin que celà) il souhaiterai que le prix de livraison au delà de 100Kg soit un ratio entre le poids réel et le cout au 100Kg. Pour être plus clair le calcul fonctionnerai comme ça :

 

Coût au 100Kg : 60€

Poids de la commande : 145Kg

Coût de livraison : 145 / 100 * 60 = 87€

 

Merci par avance. :)

Share this post


Link to post
Share on other sites

  • 5 months later...

Bonjour,

Je me demandais si vous aviez pu résoudre votre souci exposé en octobre dernier. Je suis confronté au même problème. J'aimerais pouvoir faire jouer les frais de port à la fois avec le prix du panier et le poids. Impossible de configurer quelques chose selon ces règles actuellement sur le back Office de Prestashop. Ou alors, j'ai manqué un truc ! J'aimerais pouvoir offrir les ports quand le client a atteint un certain montant et un certain poids :

Exemple :

 

Pour un panier entre 0 et 69 € :

Quand le poids du paquet est entre 0 et 3 kg : 7,90€ de frais de port

poids entre 3 et 10 kg : 11,40 €

poids entre 10 et 20 kg : 14,70 €

poids entre 20 et 30 kg : 17,30 €

 

Pour un panier entre 69 et 89 € :

poids entre 0 et 3 kg : Gratuit

poids entre 3 et 10 kg : 11,40 €

poids entre 10 et 20 kg : 14,70 €

poids entre 20 et 30 kg : 17,30 €

 

Pour un panier entre 89 et 109 € :

poids entre 0 et 3 kg : Gratuit

poids entre 3 et 10 kg : Gratuit

poids entre 10 et 20 kg : 14,70 €

poids entre 20 et 30 kg : 17,30 €

 

Pour un panier entre 109 et 169 € :

poids entre 0 et 3 kg : Gratuit

poids entre 3 et 10 kg : Gratuit

poids entre 10 et 20 kg : Gratuit

poids entre 20 et 30 kg : 17,30 €

 

Panier au delà de 169 € :

poids entre 0 et 3 kg : Gratuit

poids entre 3 et 10 kg : Gratuit

poids entre 10 et 20 kg : Gratuit

poids entre 20 et 30 kg : Gratuit

 

Merci. Toutes vos réponses seront les bienvenus. :)

Share this post


Link to post
Share on other sites

  • 2 months later...

Bonjour,

 

Oui je suis parvenu à trouver une solution, en fait il suffit simplement d'override la classe correspondant au resultat attendu; Dans mon cas j'ai override la méthode getPackageShippingCost de la classe CartCore afin de modifier la manière dont est calculé le cout de livraison.

 

J'ai ajouté ceci au début de ma méthode afin d'offrir les frais de port aux clients avec un panier supérieur à 400€ pour un poid inférieur à 100Kg.

    if ($this->getOrderTotal(false, Cart::BOTH_WITHOUT_SHIPPING, $product_list) > 400 && $this->getTotalWeight() < 100)
      return 0;

Et enfin celà afin de modifier le calcul du prix au dela de 100Kg :

    /** Modification du calcul du prix au delà de 100Kg * */
    $total_weight = $this->getTotalWeight($product_list);
    if ($total_weight >= 100) {
      // Arrondie du poids aux 10Kg supérieur
      $total_weight = ceil($total_weight / 10) * 10;
      $shipping_cost = (float) ($total_weight / 100) * $shipping_cost;
      Cache::store($cache_id, $shipping_cost);
    }

Cordialement :)

Edited by guillaume.d (see edit history)

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More