Jump to content

Comment désactiver la livraison dans les DOM-TOM?


Recommended Posts

Bonjour à tous/toutes,

Pour des raisons de coût de transport, je ne livre que la France métropolitaine. J'ai donc associé Un transporteur à cette zone.
Mais les clients des TOM-DOM que je ne peux pas malheureusement livrer, saisissent bien leur code postal et comme pays la France=> ils peuvent donc passer commande ce que je ne veux pas.

Comment filtrer pour ne pas accepter les codes postaux des DOM-TOM?

Également avec ma configuration, je ne vois pas ou on peut configurer en fonction du code postal des frais de trasnport + élevés.

Merci de vote lecture.

Chris

Link to comment
Share on other sites

re,

avec les histoires de (livraison/transports il n'y a pas de miracle, à toi de t'adapter avec telle ou telle situation, il y a pas mal de posts la-dessus car c'est un topic récurent.

prestashop n'est pas français au départ mais traduit et adapté en version française

PS: fait une recherche directe sur google avec prestashop transporteur etc c'est + rapide au niveau des infos.

Link to comment
Share on other sites

Effectivement j'ai répondu un peu trop vite!
Soit tu joues sur les paiements soit sur le transporteur.
Mais dans les 2 cas, si le client ne saisit pas en pays GAUDELOUPE MARTINIQUE...mais FRANCE (ce qui n'est pas faut non plus), c'est mort.
Pour être vraiement sur, il faut interdire la commande dans l'écran Adresse et tester les codes postaux autorisé (de 01xxx à 95xxx).
Mais on s'éloigne du coeur de prestashop.
Une évolution à demander...

Link to comment
Share on other sites

Sinon, je pense qu'il peut y avoir une autre solution.
Vu qu'on peut créer des zones et pays, il faut créer un pays appeler France métropole et supprimer france simple.
Apres questions de bon sens pour les clients qui sont en Outre Mer, ils savent qu'ils ne sont pas en métropole donc il commanderons pas.

Meilleurs solutions pour le moment je pense...

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

Je relance ce topic car le problème est bien là. Sous Virtuemart (Joomla) il est possible de configurer un code postal dans les moyens de transport. Cela permet donc d'assigner à ceux choisissant le pays France et entrant un code postal des DOM-TOM d'obtenir les frais de port pour la métropole.

Sinon, changer le pays France par "France métropolitaine", ça peut freiner le client qui cherchera alors dans la liste des pays "Réunion" ou autre...

Link to comment
Share on other sites

Bonjour,

je suis nouveau sur Prestashop et je suis confronté par le même problème.

Mon transporteur me facture par tranche de poids et destination (code postal).

J'ai un autre site sous joomla et virtuemart qui permet de calculer le prix de la livraison selon la destination et le poids.

Vous savez s'il est prévu de faire ca sous prestashop? Je fais le tour du forum et je ne trouve rien.

Merci

Link to comment
Share on other sites

  • 1 month later...

Pour être vraiement sur, il faut interdire la commande dans l'écran Adresse et tester les codes postaux autorisé (de 01xxx à 95xxx).
Mais on s'éloigne du coeur de prestashop.


Pas forcément, en regardant la 1.4.0.13, page Pays et le champs code postal.

On peut déjà coder une vérification du format alpha-numéric du zip.

e.g. France : NNNNN

Il suffit d'aller un tout petit peu plus loin e.g. (NN){01-95}NNN

C'est vrai, cela nécessite quelques lignes de code et pour être juste même eBay n'a pas apporté une solution à ce problème. Je suis d'autant plus sûr que PS le fera un jour !
Link to comment
Share on other sites

  • 6 months later...

Sous Prestashop v1.4.4.1, voici comment j'ai temporairement résolu ce problème.

Dans AddressController.php, cherchez

$zip_code_format = $country->zip_code_format;
if ($country->need_zip_code)
{
if (($postcode = Tools::getValue('postcode')) AND $zip_code_format)
{
 $zip_regexp = '/^'.$zip_code_format.'$/ui';
 $zip_regexp = str_replace(' ', '( |)', $zip_regexp);
 $zip_regexp = str_replace('-', '(-|)', $zip_regexp);
 $zip_regexp = str_replace('N', '[0-9]', $zip_regexp);
 $zip_regexp = str_replace('L', '[a-zA-Z]', $zip_regexp);
 $zip_regexp = str_replace('C', $country->iso_code, $zip_regexp);
 if (!preg_match($zip_regexp, $postcode))
  $this->errors[] = '<strong>'.Tools::displayError('Zip/ Postal code').'</strong> '.Tools::displayError('is invalid.').'<br />'.Tools::displayError('Must be typed as follows:').' '.str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $zip_code_format)));
}
elseif ($zip_code_format)
 $this->errors[] = '<strong>'.Tools::displayError('Zip/ Postal code').'</strong> '.Tools::displayError('is required.');
elseif ($postcode AND !preg_match('/^[0-9a-zA-Z -]{4,9}$/ui', $postcode))
 $this->errors[] = '<strong>'.Tools::displayError('Zip/ Postal code').'</strong> '.Tools::displayError('is invalid.').'<br />'.Tools::displayError('Must be typed as follows:').' '.str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $zip_code_format)));

...et ajoutez à la suite

/* Check France Met. - Dpt. between 01 & 95 only */
if ($address->id_country == Country::getByIso('FR'))
{
if ((int)(substr($postcode, 0, 2)) > 95)
 $this->errors[] = '<strong>'.Tools::displayError('Zip/ Postal code').'</strong> '.Tools::displayError('is invalid.');
}

Link to comment
Share on other sites

  • 1 year later...
  • 1 month later...
  • 9 months later...
  • 2 months later...

De mon côté, j'ai renommé le pays "France" en "France métropolitaine" dans le back office dans un premier temps pour bien distinguer la France métropolitaine du reste.

 

Car il faut savoir que dans PRESTASHOP que les DOM TOM (je ne suis pas sur pour tous) sont classés non pas dans "France" mais en tant que pays indépendant (Guadeloupe, Guyane, etc...).

 

Donc il est possible de faire une facturation par DOM TOM avec une prise en compte HT (comme considéré comme un pays) et du coup faire cette distinction.

Sauf que ce n'est pas logique d'un point de vue utilisateur car si vous avez affiché France, un client des DOM TOM vous rétorquera toujours mais c'est la France!... et il a raison, sauf que pour nous métropolitains, avons tendance à oublier le reste de cette partie de la France , sauf si nous faisons affaire avec le reste de cette partie de la France.

 

Après l'autre patch à faire, je l'ai fait directement dans la classe classes/Address.php

dans la fonction validateController.php

 

C'est plus simple et plus clean.

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

Oui Monaco est bloqué mais théoriquement, Monaco ne fait pas partie de la France!

Il y a dans la liste des pays "Monaco" donc ton client devra sélectionner le pays Monaco et toi tu devras le mettre dans ta Zone de livraison type France métropolitaine.

 

 

Bonjour

 

petite question cette fonction bloque l'inscription des codes postaux sup à 95. Donc Monaco est bloqué ?

Moi je veux bloquer les DOM-TOM mais accepter monaco

Link to comment
Share on other sites

  • 1 year later...
  • 7 months later...
  • 1 month later...

Le module d'Emmanuel fonctionne très bien.

 

J'ai une zone France, Corse et DOM TOM dans le Pays France et c'est parfait j'ai un transporteur spécial Corse et pas de transporteur rattaché aux domtom car je ne livre pas chez eux pour le moment et le reste de la france ce sont les transporteurs classiques...

 

Parfait pour moi !

Link to comment
Share on other sites

  • 5 months later...
  • 1 year later...

bonjour

je remonte le sujet car j'ai "presque" le même problème ... moi j'ai certains produits que je ne veux pas envoyer dans les Dom Tom

ni a l'international 

dans la fiche produit , partie livraison, j'ai bien mis les transporteurs sélectionnés pour n'avoir que colissimo

mais ça ne marche pas ........ 

si qqun a une idée ...

 

herve

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