Jump to content

bug module date livraison et adresse


Recommended Posts

Bonjour ,je viens vers vous car je ne comprends pas pourquoi le module date de livraison fonctionne mal , je m'explique :

 

je passe une commande fictive avec des articles en stock et hors stock, je suis sur la page des paiement où doit être affiché la date approximative de livraison, hors j'ai ceci qui s'affiche :

 

Date approximative de livraison avec ce transporteur est entre le et *

 

Autrement dit je devrait avoir marqué les dates entre ( entre le .... et .... )

 

Rien ne s'affiche.

 

Par contre si je clique sur la checkbox qui definit une meme adresse de facturation et livraison les dates apparaissent.....

 

Qu'en pensez vous et d'ou cela peut il bien venir?

Link to comment
Share on other sites

  • 3 months later...

Bonjour,

 

J'ai exactement le même souci. Le module fonctionne avec le thème par défaut Prestashop mais pas avec mon thème. Le template du module est rattaché au hook BEFORECARRIER du template order-carrier.tpl.

 

Il ne marche qu'en important explicitement la librairie jQuery dans le template beforeCarrier.tpl du module dateofdelivery :

 

<script src="{$content_dir}js/jquery/jquery-1.4.4.min.js"></script>

 

Cela cause apparemment des conflits car il faut alors importer aussi jquery.easing.1.3, ajax-cart etc. Le fix n'étant pas élégant j'ai abandonné l'idée.

 

J'ai donc déclaré une variable window.jQueryIsLoaded=true dans jquery-1.4.4.min.js (l'orginal et unique, je n'ai pas d'autre copie sur mon site) et j'ai inséré un alert(window.jQueryIsLoaded); dans beforeCarrier.tpl.

 

Lorsque je recharge l'étape de sélection du transporteur dans ma commande une popup affiche bien true, jQuery est bien loadé mais le message reste désespérément :

Date approximative de livraison avec ce transporteur est entre le et * .

 

Firebug indique que les dates minimales et maximales sont bien affectées aux variables Javascript. Par contre la fonction de beforeCarrier.tpl qui doit s'éxecuter au chargement du DOM n'est jamais appelée (les objets du DOM sont bien présents dans Firebug) :

 

$(function(){

alert('tutu'); {* pas de popup... *}

if (datesDelivery[{ ....

 

idem avec n'importe quelle fonction jQuery. jQuery est bien chargé mais ne s'exécute pas au sein du module dateofdelivery...

 

Même problème sur Firefox, IE, Chrome, en local ou sur un serveur de test distant.

Idem en remplaçant l'order-carrier.tpl de mon theme par l'original PS.

 

Si quelqu'un a une piste, il est le bienvenu !

Link to comment
Share on other sites

Petit up, j'ai trouvé une solution qui fonctionne. Le Bug tracker étant assez évasif sur la question ("c'est un problème qui vient de votre theme, contactez le développeur").

Il s'agit apparemment bien de conflits jQuery entre les différents blocks du template order-carrier.tpl.

 

Le fix consiste dans beforeCarrier.tpl :

 

Ligne 28 : réimporter jquery :

{if $datesDelivery|count}

<script src="{$content_dir}js/jquery/jquery-1.4.4.min.js"></script>

<script type="text/javascript">

 

Ligne 42 : utiliser la fonction jQuery noConflict() pour isoler les variables jQuery à ce seul block (pas d'interraction avec celles des autres blocks) :

$.noConflict();

jQuery(document).ready(function($) { //Attention !!! réécrire "jQuery(document).ready(function($) {..." car "$(function(){..." ne marche alors plus !!!!

if (datesDelivery[{/literal}{$id_carrier}{literal}] != undefined)

 

Ligne 63 : libérer l'affectation des variables jQuery de ce bloc (sinon fancybox() plante mais pas - chez moi - le shopping_cart chargé apparemment avant dateofdelivery...) :

});

jQuery.noConflict(true);

{/literal}

</script>

Link to comment
Share on other sites

  • 1 month later...
  • 11 months later...

Un très grand merci ! Je cherchais depuis des heures et je m'arrachais les cheveux ! D'autant plus que ça avait fonctionné sans rien modifier et que ça ne fonctionnait plus sans que je ne parvienne à trouver la raison de ce conflit ! Sans doute un autre module, mais en local je ne suis pas parvenu à reproduire l'erreur...

 

Enfin en tout cas ça fonctionne, merci encore.

 

Rodolphe (PS 1.4.11)

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