THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

Je n'arrive pas a faire apparaitre MR dans la liste des transporteurs...

Le mode de livraison est correctement configuré (Zone livraison france active), les autres modules s'affichent (colissimo par exemple) et sont sur la meme zone...

public function isValidDelivery(Country $country)
    {
        return true;
    }

Une piste pour me permettre d'avancer ?

Offline

Offline


sans succes, toujours pas affiché, mais je n'y avais pas pensé...

une autre piste ?

Offline


J'ai une erreur sur getDeliveryTime()...

Fatal error: Uncaught Error: Call to a member function getDeliveryTime() on null in ... /MondialRelay/EventListeners/DeliveryListener.php:151

Offline


J'ai entré une entrée dans la base pour résoudre le soucis, mais MR ne s'affiche toujours pas...

Offline


Tu devais ajouter une issue au module : https://github.com/thelia-modules/MondialRelay/issues

As-tu modifié les zones de livraisons associées au module ?


OpenStudio Toulouse

Offline


J'ai en effet supprimé les zones créés automatiquement, mais j'ai bien associé MR a la livraison FRANCE :

Zones de livraison : j'ai cette ligne :

France   

Andorre, France métropolitaine, Principauté de Monaco   

FreeShipping - Envoi par COURRIER SUIVI
Colissimo - Livraison par colissimo en 72h
MondialRelay - Livraison avec Mondial Relay

Offline


OK, ça a déclenché un problème dans le module :

Remplace la ligne 142 de MondialRelay/EventListeners/DeliveryListener.php:

 if (null === $selectedDeliveryType || $zoneDeliveryType === $selectedDeliveryType) { 

Par

 if (null !== $zoneConfig && (null === $selectedDeliveryType || $zoneDeliveryType === $selectedDeliveryType)) { 

OpenStudio Toulouse

Offline


cache vidé mais mode d'envoi MR toujours pas affiché... Je ne sais plus ou chercher...

Offline


comment faire pour reinstaller proprement le module ? Je l'ai supprimé puis ajouté, mais les zones de livraisons n'ont pas été remises

Offline


Supprime les tables mondial_relay_... de la base de données avec phpMyAdmin


OpenStudio Toulouse

Offline


Merci !

Le probleme est presque resolu, le module tente de s'afficher, mais j'ai un beau message d'erreur Thelia " [Le paramètre "country_id" est absent dans la boucle type: mondialrelay.delivery-price, nom: home-prices ]"

Je vais tenter de resoudre ca demain, mais j'imagine que tu sais déja d'ou vient le soucis ?

Offline


Oui, ça veut dire que order/deliveryModuleList est appelée sans le paramètre "address_id".

Tu utilises le template front par défaut ?


OpenStudio Toulouse

Offline


Oui, template normal, voici la boucle :

{loop type="delivery" name="deliveries" force_return="true" address=$address}

Offline


En fait, ça devrait marcher, car le paramètre $country utilisé dans la boucle est mis en place par \Front\Controller\OrderController::getDeliveryModuleListAjaxAction()

Je ne comprends pas comment $country peut être vide...


OpenStudio Toulouse

Offline


En effet, ca devrait marcher, mais impossible de comprendre pourquoi j'ai ce message... De plus cela fonctionne pour les autres modules ( Colissimo par exemple)


Oops ! Une erreur est survenue
Une erreur est survenue
La page demandé a rencontré un problème. Merci de contacter le développeur du module que vous êtes en train d'utiliser ou bien d'ouvrir une issue à l'équipe de développement de Thelia sur Github : here

Le message d'erreur suivant a été trouvé : [Le paramètre "country_id" est absent dans la boucle type: mondialrelay.delivery-price, nom: home-prices ]

Offline


Bonjour,

Je viens de reprendre le module,  en dev, j'ai :

Whoops, looks like something went wrong.
1/1
ServiceNotFoundException in Container.php line 303:
You have requested a non-existent service "module.mondialrelay".
in Container.php line 303

Pourtant "mondialrelay" existe non ? puisque le module est actif...

Offline

Offline


J'allai, avant ta réponse, dire "J'ai vidé le cache" big_smile

Last edited by valentin121212 (27-07-2019 21:24:48)

Offline


Tu est sur que le répertoire cache est vide ?


OpenStudio Toulouse

Offline


Oups, j'ai vidé "manuellement" le dossier et le message a changé :

InvalidArgumentException in BaseLoop.php line 302:
[Le paramètre "country_id" est absent dans la boucle type: mondialrelay.delivery-price, nom: home-prices ]
in BaseLoop.php line 302
at BaseLoop->initializeArgs(array('type' => 'mondialrelay.delivery-price', 'name' => 'home-prices', 'mode' => 'home', 'country_id' => null, 'state_id' => null)) in TheliaLoop.php line 408
at TheliaLoop->createLoopInstance(array('type' => 'mondialrelay.delivery-price', 'name' => 'home-prices', 'mode' => 'home', 'country_id' => null, 'state_id' => null)) in TheliaLoop.php line 150

Ce qui fait que je n'avance pas par rapport à ce que je racontais il y a quelques jours...

Offline


Pour moi ça fonctionne sur une installation 2.3.5 standard.

download


OpenStudio Toulouse

Offline


Je suis sur 2.3.4, mais j'imagine que cela n'a pas d'impact ?

Offline

Offline


Le problème est du au fait que la variable "country" dans le template local/modules/MondialRelay/templates/frontOffice/default/mondialrelay/order-delivery-extra.html est vide (nulle).
Ce template est injecté par le module MondialRelay dans le hook "order-delivery.extra" du template templates/frontOffice/ton-template/ajax/order-delivery-module-list.html
La variable "country" est positionnée par Front\OrderController::getDeliveryModuleListAjaxAction(), qui parse le template order-delivery-module-list.html
Cette méthode est invoquée par l'URL /order/deliveryModuleList
Cette URL est invoquée lors du chargement de la page /order/delivery, et lorsque le client clique sur une adresse de livraison.

Donc si "country" est vide dans le template order-delivery-extra.html, la seule solution que je voie, c'est que ton installation / ton template n'est pas standard.

Essaie de voir si ça fonctionne avec le template "default" non modifié, et avec juste les modules standard activés.


OpenStudio Toulouse