vapo Posted April 24, 2014 Share Posted April 24, 2014 Bonjour, Je viens de mettre en place le module Mondial Relay. Le module fonctionne correctement. Aucun soucis à ce niveau là. Le problème est que Mondial Relay permet des livraisons en point relais uniquement en France, Belgique, Luxembourg, et Espagne. Lorsque le client arrive sur la page du choix du transporteur et qu'il est par exemple en Italie : Mondial Relay apparait... Alors que c'est impossible à livrer là bas en point relais... Du coup ma question est : est-il possible de désactiver un transporteur uniquement pour certains pays? Ou de l'activer uniquement pour certains pays? Je souhaiterais éviter de changer les zones... et l'attributions des pays aux zones pour garder un certain ordre. Si quelqu'un a une idée ou a déjà été confronté à ce soucis? Merci par avance Link to comment Share on other sites More sharing options...
Xavier du Tertre Posted April 25, 2014 Share Posted April 25, 2014 Bonjour, Effectivement, tu dois modifier tes zones transporteurs. Et dans l'idéal, il faudrait que le développeur du module le mette à jour avec une feature front-end simple mais importante : il faut que l’option de livraison ne soit pas affichée si le client se trouve hors des zones de livraisons. Je passe le message. Merci pour ta remontée ! Link to comment Share on other sites More sharing options...
Broceliande Posted April 25, 2014 Share Posted April 25, 2014 Bonjour, Effectivement, tu dois modifier tes zones transporteurs. Et dans l'idéal, il faudrait que le développeur du module le mette à jour avec une feature front-end simple mais importante : il faut que l’option de livraison ne soit pas affichée si le client se trouve hors des zones de livraisons. Je passe le message. Merci pour ta remontée ! @vapo, Je suis à moitié d'accord avec Xavier, sur le fait que le module pourrait effectuer un test sur le pays de livraison, compte tenu que ce transporteur n'est effectif que pour une poignée de pays (4 aujourd'hui). Ce serait pratique. Mais puisque que Mondial relay fonctionne avec de vrais transporteurs, et ne se charge sur la page transporteurs que si l'un des transporteurs associés à MR est présent, c'est en définitive les transporteurs affichés qui ont un contrôle sur le module, et non l'inverse. Pour le coup il me semble bien qu'on ne peut se dispenser d'isoler les pays concernés dans une ou plusieurs(4) zones. Voici pour ce qui est de l'usage. Côté pratique on peut pallier au problème en créant une override, de la méthode _assignCarrier() (de tête), dans la classe ParentOrderController ... On y trouve ceci : protected function _assignCarrier() { $customer = new Customer((int)(self::$cookie->id_customer)); $address = new Address((int)(self::$cart->id_address_delivery)); $id_zone = Address::getZoneById((int)($address->id)); $carriers = Carrier::getCarriersForOrder($id_zone, $customer->getGroups()); self::$smarty->assign(array( 'checked' => $this->_setDefaultCarrierSelection($carriers), 'carriers' => $carriers, 'default_carrier' => (int)(Configuration::get('PS_CARRIER_DEFAULT')) )); self::$smarty->assign(array( 'HOOK_EXTRACARRIER' => Module::hookExec('extraCarrier', array('address' => $address)), 'HOOK_BEFORECARRIER' => Module::hookExec('beforeCarrier', array('carriers' => $carriers)) )); } On peut si on le souhaite ajouter une condition juste après $carriers = Carrier::getCarriersForOrder($id_zone, $customer->getGroups()); On parcoure $carriers, on le compare à la liste des transporteurs associés à MR (je ne sais plus de tête si c'est une variable de configuration ou pas) , si on trouve un carrier MR , on compare avec l'id_country de l'adresse , et on unset le résultat si ça match pas , ça donnerait un truc genre : if(!in_array($address->id_country, array(a,b,c,d)) unset $carrier; a,b,c,d seraient les 4 pays desservis par MR. Bien sur c'est la méthode que j'explique , le code n'est pas utilisable en l'état. Pour moi le module n'a pas vocation à modifier l'affichage de tel ou tel transporteur. Pour cela il faudrait une méthode dans la classe CarrierModule à laquelle sont liés les transporteurs modules , genre "isCarrierAvailable" , or aujourd'hui nous n'avons que deux méthodes : getOrderShippingCost et getOrderShippingCostExternal En dehors donc du calcul de prix du transport un transporteur même lié à un module agit comme n'importe quel transporteur. vapo ce n'est pas réellement un gros challenge de sortir ces 4 pays des zones existantes et leur affecter une zone chacuns. Outre le fait de pouvoir le plus facilement du monde les désactiver pour tel ou tel pays , on a le plein contrôle sur le tarif par pays, ce n'est pas un luxe. Sinon reste la fameuse override. 1 Link to comment Share on other sites More sharing options...
Xavier du Tertre Posted May 2, 2014 Share Posted May 2, 2014 +1 pour Broceliance, @Vapo regarde plutôt sa réponse, plus complète. Link to comment Share on other sites More sharing options...
francobelge82 Posted May 4, 2014 Share Posted May 4, 2014 Bonsoir ou trouver le module mondial relay merci Link to comment Share on other sites More sharing options...
Xavier du Tertre Posted May 5, 2014 Share Posted May 5, 2014 Il est retiré au téléchargement temporairement : http://www.prestashop.com/forums/topic/292263-bug-module-mondial-relay/page-2 Link to comment Share on other sites More sharing options...
francobelge82 Posted May 5, 2014 Share Posted May 5, 2014 Merci y aurait il une autre solution provisoir pour utilisé ce type le mondial relay ? merci Link to comment Share on other sites More sharing options...
vapo Posted May 9, 2014 Author Share Posted May 9, 2014 Merci pour vos réponses. J'ai effectivement modifier les zones dans le prestashop. Une zone spéciale que j'ai nommé Point Relais avec à l'intérieur la France. Et une autre zone que j'ai nomée Point Relais 2, Belgique, luxembourg, et expagne. J'en ai fait deux pour ne pas que mes autres moyens de transports "métropole" ou retrait sur place soit impacté par le changement, pour ne pas qu'ils soient proposé à ces 3 dernier pays. Merci pour votre aide. Mickael 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