Jump to content

problème de configuration / restriction des villes / tarifs de livraison


Recommended Posts

Bonjour, 

je suis nouveau dans la communauté et j'aimerais bien qu'on m'aide sur des questions simples:

* ma boutique ne livre que dans une liste d'endroits bien précis. Par exemple : Plestin les grèves, Locquirec et Trémel (en Bretagne). Pour chacune de de ces villes il y a un tarif minimum de livraison ainsi que des frais différents de livraison. 

Comment pourrais je faire ceci très rapidement (et surtout facilement) .

 

* Pendant que le client passe la commande il ne pourra sélectionner que ces trois villes

 

* Dans l’aperçu de la commande les frais de livraison sont ajoutés automatiquement en relation avec le lieu de livraison sélectionné : 

plestin les grèves --> gratuit

Locquirec --> 6,50 Euros

Trémel --> 6,90 Euros

 

 

Sachant que j'utilisae la version 1.6.1.5 merci de me fournir une description facile à appliquer. 

 

MErci beaucoup et bonne journée

 

 

Link to comment
Share on other sites

Hello dalibou,
Ah la restriction par ville tout un programme !

J'ai peut être une piste pour toi, tu vas voir c'est ludique et surtout très rapide.
1) dans ta base de donnée tu crées une nouvelle table ps_restriction_code_postal
2) tu y ajoute deux colonnes de type INT nommé "id" et "code_postal"
3) tu ajoutes tes 3 codes postaux ex id 1 -> 22310 pour Plestin les grèves

4) on va se créer un petit override mignon de la classe Address.php

<?php
/**
* 2007-2016 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author    PrestaShop SA <[email protected]>
*  @copyright 2007-2016 PrestaShop SA
*  @license   http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/
class Address extends AddressCore {

  public static function checkzip($code_postal) {

      $sql = new DbQuery();
      $sql->select('code_postal');
      $sql->from('restriction_code_postal');
      $sql->where('code_postal = '.(int)$code_postal);
      $result = Db::getInstance()->getValue($sql);
      if( $result ){
      	$result = true;
      }else{
      	$result = false;
      }
      return $result;
    }

}

5) bien sur tu effaces ton class_index.php ... il ne te reste plus qu'a faire une vérification dans ton tpl si l'addresse de livraison du client est bien dans la bdd
 
dans order-carrier.tpl
 

{assign var=checkzip value=Address::checkzip($address_list[0].postcode)}

{if $checkzip == true}
... on affiche les transporteurs...
{else}
On ne vous livre pas dans cette ville 
{/if}

bon courage

Edited by Alexandre Carette (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...