Lilil Posted February 25, 2010 Share Posted February 25, 2010 Bonjour,J'aimerai pouvoir offrir aux gens de ma petite bourguade la gratuité des frais de port....Comment puis paramétrer cela pour que les gens qui rentrent le bon code postal ne paie pas les frais d'envoi ? .... Est-ce possible ??Merci Link to comment Share on other sites More sharing options...
jeckyl Posted February 25, 2010 Share Posted February 25, 2010 Bonjour,Cela n'existe pas encore, mais vous pouvez toujours demander à la communauté de développer le module. Link to comment Share on other sites More sharing options...
EnveloppeBulle Posted June 1, 2010 Share Posted June 1, 2010 Voici la solution (attention, ça reste quand même un peu de la bidouille !)Dans les transporteurs, activez le Retrait sur place (réglez pour que ça marche pour la France Métropolitaine) et repérez son ID (ce sera l'id carrier retrait sur place).Ensuite, dans les classes modifiez le fichier Address.php. Il suffit d'insérer la fonction suivante au milieu des autres fonctions : static public function getPostcodeByAddress($id_address) { $result = Db::getInstance()->getRow(' SELECT `postcode` FROM `'._DB_PREFIX_.'address` WHERE `id_address` = '.intval($id_address)); return isset($result['postcode']) ? $result['postcode'] : false; } Ensuite, à la racine de votre presta, trouvez le fichier order.php et modifiez-le dans sa fonction displayCarrier() (environ ligne 306, dans *carrier step*). Il suffit de remplacer ça : $address = new Address(intval($cart->id_address_delivery)); $id_zone = Address::getZoneById($address->id); $result = Carrier::getCarriers(intval($cookie->id_lang), true, false, intval($id_zone)); $resultsArray = array(); par ça : $address = new Address(intval($cart->id_address_delivery)); $id_zone = Address::getZoneById($address->id); $dept = Address::getPostcodeByAddress($address->id); //$dept = substr($dept,0,2); //pour prendre le département au lieu de la commune $result = Carrier::getCarriers(intval($cookie->id_lang), true, false, intval($id_zone)); $resultsArray = array(); Enfin, rendez-vous dans le template correspondant, à savoir theme/votretheme/order-carrier.tpl . Dans le début de la boucle d'affichage du tableau, remplacez : {foreach from=$carriers item=carrier name=myLoop} <input type="radio" name="id_carrier" value="{$carrier.id_carrier|intval}" id="id_carrier{$carrier.id_carrier|intval}" {if $carrier.id_carrier == $checked || ($checked == 0 && $i == 0) || ($carriers|@sizeof == 1)}checked="checked"{/if} /> par : {foreach from=$carriers item=carrier name=myLoop} {if $carrier.id_carrier=='******votre id carrier retrait sur place******'} {if $dept == '*******le code postal exact ou le n° de dept*******'} <input type="radio" name="id_carrier" value="{$carrier.id_carrier|intval}" id="id_carrier{$carrier.id_carrier|intval}" {if $carrier.id_carrier == $checked || ($checked == 0 && $i == 0) || ($carriers|@sizeof == 1)}checked="checked"{/if} /> {else}- {/if} {else} <input type="radio" name="id_carrier" value="{$carrier.id_carrier|intval}" id="id_carrier{$carrier.id_carrier|intval}" {if $carrier.id_carrier == $checked || ($checked == 0 && $i == 0) || ($carriers|@sizeof == 1)}checked="checked"{/if} /> {/if} (Remplacez bien les valeurs où il y a des **** )ça devrait marcher Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now