Close

LeBonFiltre.fr a changé d'hébergeur pour OVH (yes)

 

 

Nous avons changé d'hébergeur pour aller chez OVH, qui est aussi par ailleurs notre fournisseur technique d'hébergement de nos serveurs pour nos autres activités.

On a profité du changement pour paramétrer la mise à jour automatique des statuts (états) de livraison du module du réseau transporteur "Mondial relay" (les points relais).


Effectivement, avant on faisait les mises à jour "à la main" chaque jour en contrôlant directement le suivi des colis sur le site de Mondial Relay.
Au passage, on a mis à jour notre module qui était en version 1.1xx à 1.8xx, il est "mieux" et mieux intégré.

Donc voilà, dans les paramètres avancés, on trouve un lien du type : "URL de la tache CRON http://le-site-marchand/modules/mondialrelay/cron.php?secure_key=72f1a40dde45f8675ba14b54f5"

On peut constater que la tâche CRON doit appeler l'URL du fichier cron.php sur le www.lebonfiltre.fr avec un paramètre "secure_key"... Seulement voilà chez certains hébergeurs, et notamment chez OVH.com on peut planifier un appel en désignant simplement un fichier (donc pas de paramètre).

Par exemple ici, on pourrait planifier un appel sur fichier/script php : www.site-marchand.fr/modules/mondialrelay/cron.php

Deux solutions possibles :

1. Solution 1 (quick & dirty) : Enlever le test sur le paramètre 'secure_key', en modifiant le fichier cron.php : Repérez la ligne, qui compare les 'secure_key':


if (Tools::getValue('secure_key') != Configuration::get('MONDIAL_RELAY_SECURE_KEY'))
    exit;

et mettez-les en commentaire, comme cela :

    
// if (Tools::getValue('secure_key') != Configuration::get('MONDIAL_RELAY_SECURE_KEY'))
//    exit;


>> le gros problème, c'est que n'importe quel processus pourra appeler le ficher cron.php qui effectuera une mise à jour... De nombreux appels seront possibles et à chaque fois une mise à jour sera réellement effectuée, il y a là un grand danger de surcharge de votre site et un blocage possible de votre e-commerce !!
>> problème 2, le travail est à refaire en cas de mise à jour du module.
>> philosophiquement, cette approche est 'moyenne', car on modifie à tord du code qu'on ne maîtrise pas... ok c'est rapide à modifier (1min environ)

2. Solution 2 : Ecrire un script php qui fera l'appel à la page/fichier cron.php en passant le paramètre 'secure_key'. Il vous suffira d'appeler votre script dans votre planificateur de tâches.

Donc, j'écris mon script en php (ou un autre language comme python ou perl) qui sera exécuté par le sytème CRON
Exemple : mondial_maj_script.php (mondial mise à jour script)

<?php
  $query_datas = http_build_query(
              array(
                'secure_key' => "remplacer ici par la valeur de votre clé"
            )
  );
  $context = stream_context_create(
                array( 'http' => array(
                                   'method' => "GET",
                                   'content'=> $query_datas
                                )
                    )
              );
  $the_url = "http://www.votre-site-marchand.fr/modules/mondialrelay/cron.php";
  $mondial_cron = file_get_contents($the_url, false, $context);
?>


Remplacez les valeurs 'secure_key' et 'votre-site-marchand.fr' par vos valeurs, sauvez le script à la racine ou dans un répertoire de votre site web.

Voilà, il suffit maintenant d'appeler dans votre planificateur votre script (/chemin-jusqu-au-script/mondial_maj_script.php) qui fera l'appel http avec le paramètre.


Close