Jump to content

Correcteur de points relais Mondial relay


cyssoo

Recommended Posts

Bonjour,

 

Voici un petit module Prestashop 1.6 (non testé version précédentes) qui aidera peut-être pas mal de monde utilisant le module Mondial Relay, lorsque les clients oublient de choisir leur point relais.

 

Il crée un onglet dans "Préférences", qui vous emmène sur une page listant les points relais enregistrés dans la base de données dans la table mr_selected.

 

Le module Mondial Relay doit donc impérativement être installé.

 

Ainsi, vous allez pouvoir créer et modifier les entrées de cette table, pour débloquer rapidement la situation lorsque le client n'a pas choisi de point relais.

 

Attention cependant : vous êtes responsable de votre site, de la base de données ainsi que des fichiers. Il ne s'agit que d'un petit module que j'ai jugé utile et bon de proposer ici. Merci de m'informer en cas de bug ou de soucis.

 

Faites donc très attention aux données que vous ajoutez ou modifiez via ce module, cela est définitif et irréversible.

evermr.zip

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

Quelqu'un pour bricoler un bout de code svp  :wub:

 

Verification de l'id du transporteur avant que le bouton suivant fonctionne
 si id carrier = l'id carrier de mondial relay {
 on verifie l'existance du relayPointNum}
 si relayPointNum != '' {on active le bouton suivant}
 else 
 {on affiche un message disant de choisir un point relay.}
Link to comment
Share on other sites

 
			// If MR carrier selected, check MR relay point is selected too
			$('input[name=processCarrier], button[name=processCarrier]').click(function(){  
				var _return = !(PS_MRSelectedRelayPoint['carrier_id'] && !PS_MRSelectedRelayPoint['relayPointNum']);
				if (!_return)
				{
					console.log(' Check2 ');
					// alert(PS_MRTranslationList['errorSelection']);
					
					$.fancybox.open([
							{
							type: 'inline',
							autoScale: true,
							minHeight: 30,
							content: '<p class="fancybox-error">' + PS_MRTranslationList['errorSelection'] + '</p>'
							}],
							{
							padding: 0
							});
						
					
				}						
					
				carrier_check = $('input.delivery_option_radio:checked').val();					
				carrier_find = carrier_check.replace(',', '');
								
				if( $('.PS_MRFloatRelayPointSelected').length == 0 &&  isMRCarrier(carrier_find) &&  _return != false) {
						
						
						console.log(' Check3 ');
						//alert(PS_MRTranslationList['errorSelection']);
						$.fancybox.open([
						{
							type: 'inline',
							autoScale: true,
							minHeight: 30,
							content: '<p class="fancybox-error">' + PS_MRTranslationList['errorSelection'] + '</p>'
						}],
						{
						padding: 0
						});
						
						
						
						return false
				}
				
				return _return;
			});

Attention il faut que Fancybox soit chargé ne fonctionne pas avec l'OPC

 

3pom

 

Bonjour ,

Ce bout de code va dans le mondialrelay.php ???

Link to comment
Share on other sites

Bonjour,

 

Est-ce que ce code oblige le client à choisir un point relais ? Car actuellement, si le client choisis la livraison en Mondial relay mais ne sélectionne pas de point relais, il peut malgré tout valider la commande ! Je dois donc le contacter ce qui n'est pas toujours évident et cela fait perdre du temps pour la livraison.

 

Merci d'avance pour votre réponse.

Link to comment
Share on other sites

  • 2 weeks later...

bonsoir,

je suis nouveau sur prestashop.

 

J'ai rencontré le problème ce matin d'une commande où le client n'a pas choisi de point relay.

je ne fonctionne pas avec le widget mais en normal et MR est sélectionné comme transporteur par défaut car c'est celui sur lequel j'offre les frais de ports à partir d'un montant de commande.

 

Mon module MR est en version 2.1.3 et le code proposé plus haut ne semble pas fonctionner.

J'ai plusieurs fichiers .js, j'ai essayé dans pratiquent tous sauf gmap.js et jquery-1.6.4.min.js

 

dans lequel faut-il greffer le bout de code et à quel endroit dans le fichier?

 

et je relance aussi la question de popeyerubis

Que voulez-vous dire par " il faut que fancybox soit chargé ne fonctionne pas avec l'OPC" ?

 

il semble que le widget verifie qu'un point relay soit sélectionné (avant la modif que vous proposez), çà affiche une boite de dialogue mais çà marche pas au top car le widget ne s'ouvre pas à nouveau

 

merci d'avance

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

bonsoir,

je suis nouveau sur prestashop.

 

J'ai rencontré le problème ce matin d'une commande où le client n'a pas choisi de point relay.

je ne fonctionne pas avec le widget mais en normal et MR est sélectionné comme transporteur par défaut car c'est celui sur lequel j'offre les frais de ports à partir d'un montant de commande.

 

Mon module MR est en version 2.1.3 et le code proposé plus haut ne semble pas fonctionner.

J'ai plusieurs fichiers .js, j'ai essayé dans pratiquent tous sauf gmap.js et jquery-1.6.4.min.js

 

dans lequel faut-il greffer le bout de code et à quel endroit dans le fichier?

 

et je relance aussi la question de popeyerubis

Que voulez-vous dire par " il faut que fancybox soit chargé ne fonctionne pas avec l'OPC" ?

 

il semble que le widget verifie qu'un point relay soit sélectionné (avant la modif que vous proposez), çà affiche une boite de dialogue mais çà marche pas au top car le widget ne s'ouvre pas à nouveau

 

merci d'avance

bon j'ai avancé un peu, voici les fonctions où il me semble que le test est fait

on voit une différence dans la section après // If MR carrier selected, check MR relay point is selected too

 

dans la version normale

$(document).ready(function()

    {

        $('#form').submit(function()

        {

            return PS_MRCheckSelectedRelayPoint();

        });

        $('#toggleStatusOrderList').click(function()

        {

            toggleOrderListSelection();

        });

        $('#toggleStatusHistoryList').click(function()

        {

            toggleHistoryListSelection();

        });

        $('#generate').click(function()

        {

            generateTicketsAjax();

        });

        $('#PS_MRSubmitButtonDeleteHistories').click(function()

        {

            deleteSelectedHistories();

        });

        $('#PS_MRSubmitButtonPrintSelectedA4').click(function()

        {

            PS_MRSubmitButtonPrintSelected(4);

        });

        $('#PS_MRSubmitButtonPrintSelectedA5').click(function()

        {

            PS_MRSubmitButtonPrintSelected(5);

        });

        $('#PS_MRSubmitButtonPrintSelected10x15').click(function()

        {

            PS_MRSubmitButtonPrintSelected('10x15');

        });

 

        // Shipping method list

        $('.send_disable_carrier_form').click(function() {

            $(this).parent('form').submit();

        });

 

        // Configuration form page

        $('#MR_config_menu a').each(function() {

            $(this).click(function() {

                PS_MRDisplayConfigurationForm($(this).attr('id'));

            });

        })

 

        if (typeof(PS_MR_SELECTED_TAB ) != 'undefined')

            $('#MR_' + PS_MR_SELECTED_TAB + '_block').fadeIn('fast');

 

        // Have the <li> elements centered (TODO: Change it using css if possible)

        if ($('#MR_config_menu').size())

        {

            var width = $('#MR_config_menu').width();

 

            // Take directly the ul width woudln't work

            var ul_width = 0;

 

            $('#MR_config_menu').find('ul > li').each(function() {

 

                var padding_left = parseInt($(this).css('padding-left').replace(/[^-\d\.]/g, ''));

                var padding_right = parseInt($(this).css('padding-right').replace(/[^-\d\.]/g, ''));

 

                ul_width += parseInt($(this).width()) + padding_left + padding_right;

            });

 

            width = ((width - ul_width) / 2);

            $('#MR_config_menu').children('ul').css('margin-left', width + 'px');

        }

        

        // 1.5 OPC Validation - Warn user to select a relay point

            $('.payment_module a').live('click', function() {

                            if (typeof PS_MRData != 'undefined')

                            {

                if (PS_MRData.PS_VERSION >= '1.5' && PS_MRData.carrier)

                {

                    var _return = !(!PS_MRSelectedRelayPoint['carrier_id'] || !PS_MRSelectedRelayPoint['relayPointNum']);

                    if (!_return)

                        alert(PS_MRTranslationList['errorSelection']);

                    return _return;

                }

                            }

            });

            

            // If MR carrier selected, check MR relay point is selected too

            $('input[name=processCarrier], button[name=processCarrier]').click(function(){  

                var _return = !(PS_MRSelectedRelayPoint['carrier_id'] && !PS_MRSelectedRelayPoint['relayPointNum']);

                if (!_return)

                    alert(PS_MRTranslationList['errorSelection']);

                

                return _return;

            });

            

            if (typeof PS_MRData != 'undefined')

            {

                if (PS_MRData.PS_VERSION < '1.5') {

                    $('input[name=id_carrier]').click(function(){

                        checkToDisplayRelayList();

                    });

                }

            }

            

            // Handle input click of the other input to hide the previous relay point list displayed

    });

 

    // To have public method access for this closure

    return {

        initFront : function() {

            checkToDisplayRelayList();

        },

        uninstall : function(url)

        {

            return PS_MRGetUninstallDetail(url);

        }

    };

})(jQuery);

 

et dans la version widget

$(document).ready(function()

    {

        // 1.5 OPC Validation - Warn user to select a relay point

        $('.payment_module a').live('click', function() {

            if (typeof PS_MRData != 'undefined')

            {

                if (PS_MRData.PS_VERSION >= '1.5' && PS_MRData.carrier && PS_MRSelectedRelayPoint['carrier_id']!=0)

                {

                    var _return = !(!PS_MRSelectedRelayPoint['carrier_id'] || !PS_MRSelectedRelayPoint['relayPointNum']);

                    if (!_return)

                        alert(PS_MRTranslationList['errorSelection']);

                    return _return;

                }

            }

        });

        

        // If MR carrier selected, check MR relay point is selected too

        $('input[name=processCarrier], button[name=processCarrier]').click(function(){

            var carrier_selected = $('input[class=delivery_option_radio]:checked').val();

            if (PS_MRSelectedRelayPoint['carrier_id']+',' == carrier_selected || PS_MRSelectedRelayPoint['carrier_id'] == carrier_selected)

            {

                var _return = !(PS_MRSelectedRelayPoint['carrier_id'] && !PS_MRSelectedRelayPoint['relayPointNum']);

                if (!_return)

                    alert(PS_MRTranslationList['errorSelection']);

                return _return;

            }

        });

        

        if (typeof PS_MRData != 'undefined')

        {

            if (PS_MRData.PS_VERSION < '1.5') {

                $('input[name=id_carrier]').click(function(){

                    checkToDisplayRelayList();

                });

            }

        }

    });

 

j'ai tenté de coller la partie après // If MR carrier selected, check MR relay point is selected too de la version widget dans la normale mais sans succès.

 

Quelqu'un voit où çà foire?

Link to comment
Share on other sites

Merci beaucoup à 3pom pour son codage !

 

La modification du .js n'a pas d'influence, je peux toujours sélectionner Mondial Relay sans choisir de point relais...

 

Merci de me (et nous) expliquer un peu plus la procédure ou peut-être qu'elle n'est plus valable avec la version de mondial relay 2.1.3 ?

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

  • 2 weeks later...

Bouh ! J'ai dû être un peu foufou de proposer ce module... On récupère beaucoup de demandes qui ont davantage de rapports avec Mondial Relay, le module propsoé ici ne permet que de corriger les soucis de mauvaise sélection de la part du client...

 

Merci au passage à okom3pom de l'avoir précisé !

 

De vous à moi, je vous déconseille de trifouiller des modules dont vous n'avez ni la maîtrise, dont le code modifié va péter à la prochaine mise à jour, et dont les quelques lignes testées carrément en production risquent davantage de vous apporter des soucis tant qu'elles ne sont pas testées sur un environnement de dev.

 

Dans l'ensemble, je vous conseille également très fortement d'avoir Fancybox d'activé dans votre thème (hé c'est natif sur Presta !), et de bien mettre en avant ce fameux bouton de validation de point relais qui apparaît dans la popup.

 

Au final, si vous avez un souci, évitez de poster ici. Ce module est cadeau, là pour vous aider à corriger des points relais, pas pour corriger le module Mondial Relay selon vos besoins (No flood plz !).

 

Je serais davantage intéressé de savoir quelle optimisation vous souhaitez voir sur mon module, et on aidera tout le monde comme ça ^_^

 

Joyeux Nowel à tous, et bonnes ventes surtout en cette période !!

  • Like 1
Link to comment
Share on other sites

  • 2 years later...

Bonsoir,

 

Je reviens sur cet ancien topic parce que je trouve cet utilitaire bien pratique. Je l'ai installé sans problème sur ma version Prestashop 1.6.1.12 mais j'ai juste un doute.

Effectivement, on peut tout éditer ... sauf le numéro du point relais. Est-ce normal et cela veut-il dire que ce numéro ne se retrouve ni sur l'étiquette ni dans le barcode de celle-ci ?

Merci d'avance pour la réponse et pour ce petit utilitaire bien pratique, qui plus est gratuit...

Link to comment
Share on other sites

  • 2 weeks later...

Hello, oui je dois faire une refonte de ce module, pour bien tout prendre en compte et surtout simplifier l'ensemble. Je pense être en mesure de caler ça (avec une compatibilité Prestashop 1.7) d'ici un mois environ. Boulot boulot boulot ! :-)

Link to comment
Share on other sites

  • 4 weeks later...
  • 2 months later...

Bonjour,

 

Un tout grand merci pour ce travail qui devait être conséquent. Je mets le module à jour et je regarde ce qu'il en est (enfin faudra peut être que j'attende une commande sans point relais ce qui ne devrait plus désormais être un problème gràce à tes efforts ;o)).

Encore merci.

  • Like 1
Link to comment
Share on other sites

  • 4 months later...

Up !

J'ai eu un retour d'une personne qui déclare que le module efface les numéros de points relais. Sincèrement, en-dehors d'un mauvais clic, je ne vois pas comment, je soupçonne plutôt une mauvaise utilisation ou une incompréhension.

Si vous avez déjà eu ce bug avec une utilisation "clean" de ce module, pourriez-vous me faire un retour chère communauté de Prestashop ? Perso, je ne reproduis pas.

Merci à vous :-)

Pour info, Arnaud Merigeau a réalisé un tuto sur ce module, visible à cet emplacement :

https://www.arnaud-merigeau.fr/prestashop-1-6-comment-modifier-un-point-mondial-relay/

  • Like 1
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...