Jump to content

frai de port gratuit que pour la france


Recommended Posts

bonjour,

avec la version precedente nous avons reussi à avoir frais de port gratuit que pour la france à partir d une somme determine.

grace à cette réponse dans ce forum :

Bonjour,

J'ai eu une demande similaire pour un client, il 'ma demandé de ne pas avoir de frais de port offert pour les pays autre que la France.

voici ce que j'ai modifié la class Cart.php (faire une sauvegarde du fichier avant)
ligne 685
if (isset($configuration['PS_SHIPPING_FREE_PRICE']) AND $orderTotal >= floatval($configuration['PS_SHIPPING_FREE_PRICE']) AND floatval($configuration['PS_SHIPPING_FREE_PRICE']) > 0)
           return $shipping_cost;



remplacer par

if (isset($configuration['PS_SHIPPING_FREE_PRICE']) AND $orderTotal >= floatval($configuration['PS_SHIPPING_FREE_PRICE']) AND floatval($configuration['PS_SHIPPING_FREE_PRICE']) > 0 AND $id_zone==6)
           return $shipping_cost;



J'ai ajouté AND $id_zone==6 qui correspond à la zone de la France. Donc la il appliquera les frais de port offert que pour la zone 6 qui correspond dans son paramétrage à la France.

Cdt




mais avec presta shop 1.4 on trouve pas la ligne plus haut

que faut il changer svp ?
Link to comment
Share on other sites

  • 3 weeks later...

Bonjour,

Je suis nouvelle sur le forum, j'ai découvert Prestashop il y a un an.
Je le trouve génial cet OS.
Mais là je bloque, je désire pouvoir vendre en dehors de la Belgique mais ne pas offrir les frais de port pour les autres pays (à partir d'un certain montant).
Si non, je vais vendre à perte !

Pour le moment j'ai des commandes de la France mais par email.

J'ai essayé la modification ci-dessus, cela ne fonctionne pas.
J'ai la version 1.3.1.1.

Pourriez-vous m'aider ?

Merci

Link to comment
Share on other sites

Bonjour à vous,

Personnellement, je suis sur la version 1.4.10 avec mes 2 boutiques en lignes, et la modification est bien appliqué et parfaitement fonctionnelle sur le fichier Cart.php à la ligne 1069

La ligne en question :

        if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 and $id_zone==9)



Sur mon autre boutique en 1.3.7, la modif fonctionne également parfaitement sur la ligne 866,

La ligne en question :

            $free_fees_price = Tools::convertPrice(floatval($configuration['PS_SHIPPING_FREE_PRICE']), new Currency(intval($this->id_currency)));



Cordialement

Link to comment
Share on other sites

  • 1 month later...

Bonjour Narjis,

Je suis en version 1.3.7 également et j'essaye d'appliquer la modification que tu proposes, mais je ne vois pas ou modifier si la zone est la france par exemple, dans le code que vous avez mis il n'y a pas de "$id_zone==X"

Si vous avez une suggestion sur la modification à appliquer je suis preneur car je n'y arrive pas du tout!

Cordialement

Cédrick

Link to comment
Share on other sites

La modif fonctionne pour PS 1.3 et PS 1.4 sans aucun soucis, il n'est normal que vous ne trouviez pas cette mention $id_zone==X, sachant que X représente la zone 9 chez moi, d'ou le rajout de 0 and $id_zone==9) en ligne 1069 du fichier Cart.php dossier Classe sur PS 1.4.

Sur ma 1.37, le code rajouté est : 0 and $id_zone==6 OR $id_zone==9), soit la ligne complète chez moi :
if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0 and $id_zone==6 OR $id_zone==9)
return $shipping_cost;
if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $this->getTotalWeight() >= floatval($configuration['PS_SHIPPING_FREE_WEIGHT']) AND floatval($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0 and $id_zone==6 OR $id_zone==9)
return $shipping_cost;

Cordialement

Link to comment
Share on other sites

Bonjour Nrjis,

Merci pour cette réponse, le problème en fait c'est que je ne trouve pas cette ligne dans ma version de prestashop (1.3.3.0)

J'ai dans mon code:

        // Free fees
       $free_fees_price = 0;
       if (isset($configuration['PS_SHIPPING_FREE_PRICE']))
           $free_fees_price = Tools::convertPrice(floatval($configuration['PS_SHIPPING_FREE_PRICE']), new Currency(intval($this->id_currency)));
       $orderTotalwithDiscounts = $this->getOrderTotal(true, 4);
       if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0)
           return $shipping_cost;
       if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $this->getTotalWeight() >= floatval($configuration['PS_SHIPPING_FREE_WEIGHT']) AND floatval($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0)
           return $shipping_cost;



Mais du coup, je ne vois pas ou intégrer la condition sur la zone...

Désolé si ça parait bête comme question mais j'ai déjà pas mal cherché et la j'avoue que je galère...

Merci d'avance pour votre aide.

Cordialement

Cédrick

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...

Enlevez-moi un doute svp. J'ai moi aussi eu besoin de modifier ce code.

Néanmoins, une petit chose m'échappe.

Vous parlez tantôt d'un id_zone de 6, tantôt de 9 pour la France.

Or, dan mon back-off(prestashop 1.4.4.1), l'id de la France est 8 !

 

		if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 and $id_zone==8 )
		return $shipping_cost;

 

Est-ce bien cet ID qu'il faut utiliser pour conserver la gratuité de frais de port que pour la france ?

Merci d'avance

Link to comment
Share on other sites

Enlevez-moi un doute svp. J'ai moi aussi eu besoin de modifier ce code.

Néanmoins, une petit chose m'échappe.

Vous parlez tantôt d'un id_zone de 6, tantôt de 9 pour la France.

Or, dan mon back-off(prestashop 1.4.4.1), l'id de la France est 8 !

 

		if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 and $id_zone==8 )
		return $shipping_cost;

 

Est-ce bien cet ID qu'il faut utiliser pour conserver la gratuité de frais de port que pour la france ?

Merci d'avance

 

C'est ça tu choisi l'id 8 si c'est à la France que tu veux associer les frais de port gratuit....

Link to comment
Share on other sites

  • 3 weeks later...

bonjour

 

j'ai paramétré dans mon BO frais de port gratuit au dessus de 200 euros mais est-il possible de mettre cette fonction que pour le pays = france et pas de port gratuit pour les autres pays

merci de votre aide

 

cdlt

Dominique

Link to comment
Share on other sites

Bonjour Cedrick

 

ça fait 2 jours que je galère, j'ai tout essayé avec le bon id pour la France moi c'est 8

et les autres pays ont toujours les mêmes conditions= livraison gratuite pour 200 euros

merci de votre aide

ps/ je suis en version prestashop 1,4,3

cdlt

Dominique

Link to comment
Share on other sites

Etes-vous sur d'avoir modifié le code au bon endroit ?

Deux lignes plus bas et vous modifiez les livraisons gratuites en fonction du poids et non du prix.

 

Etes-vous également sur de l'id que vous avez utilisé ?

La valeur renseignée ici correspond à la valeur que vous trouvez sur la page "Transport > Zone" dans le BO.

Link to comment
Share on other sites

Bonjour à tous,

 

J'ai PS en version 1.2.5 (oui je sais il serait surement temps de faire une mise a jour...)

Je souhaiterais également limité les frais de port gratuit mais pour la France et l'Europe (je voudrais exclure les dom tom)

Je pense que la solution évoqué par Maher sur son premier post doit être la bonne mais comment dois je faire pour ajouter tous les Id des pays ou je veux autoriser les frais de port gratuit ?

Merci pour votre aide

 

seb

Link to comment
Share on other sites

Un ptit up pour le sujet !!

 

J ai un autre souci, je suis en version 1.2.5 et dans mon fichier cart.php je n'ai pas de ligne sur le free shipping mais j'en trouve dans le fichier order.php mais les codes ne sont pas les même.

Une idée please car les envois en DOMTOM me coute un bras et je ne veux pas stopper les frais de port gratuit à tout le monde pour ça !!

 

A vot' bon coeur msieurs dames !!

 

Seb

Link to comment
Share on other sites

  • 8 months later...
  • 1 month later...

Bonjour,

 

J'ai fait la modification sur une V1.4 en vue de limiter les FdP gratuits d'un code promo pour la france uniquement (id=6 chez moi), mais ça ne fonctionne pas.

 

Est-ce que ça devrait aussi fonctionner pour les codes promo ?

 

Merci.

Link to comment
Share on other sites

  • 2 months later...

Pour ma part, avec la version 1.4.8.2 j'ai du faire ceci dans le fichier classes/Cart.php

 

Juste après la ligne :

 

$orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING);

 

Mettre :

 

$result_country_and_state = Address::getCountryAndState((int)($this->id_address_delivery));
if(count($result_country_and_state) && isset($result_country_and_state['id_country']) && $result_country_and_state['id_country'] > 0)
 $id_country = $result_country_and_state['id_country'];
else				
 $id_country = 0;

 

Et remplacer la ligne suivante par :

 

if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 && $id_country == 8)

 

Car en faite ce n'est pas la Zone que l'on cherche mais le Pays (Country)

Edited by brunto (see edit history)
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...