THELIA Forum

Welcome to the THELIA support and discusssion forum

Offline


Bonjour la communauté,

Je ne vois nulle part comment faire la mise à jour des devises en auto via cron.
J'ai regardé au niveau de la doc mais je n'ai rien trouvé.
Est ce qu'il y a de prévu un fichier à appeler?

J'ai essayé avec le lien ##########/admin/configuration/currencies/update-rates
Mais ça ne fonctionne pas si on est pas loggué.

Last edited by fredodefrance (06-10-2017 13:29:16)


C'est en faisant qu'on apprends.

Offline


Heu c'est un peu le coup de feu en ce moment.
Avec du retard.
Merci

Pour aider ceux qui en ont besoin.
Se connecter en mode console sur le serveur linux.
Se déplacer jusqu'à la racine du répertoire ou est hébergé la boutique Thelia.

Créer un fichier script fonctionnant avec le shell.
L'éditer avec un éditeur de type vim ou emacs.
Entrer le code suivant:

#!/bin/sh
#echo test update devises :
php Thelia update-rates
exit 0

Enregistrer et donner les droits d'exécution.

chmod u+x updatecurrencies.sh

Faire un test d'exécution dans la console:
./updatecurrencies.sh

Rajouter la tâche à exécuter dans le cron à l'heure souhaitée (1H00 a.m.).
/bin/sh /le/chemin/de/la/boutique/updatecurrencies.sh

Last edited by fredodefrance (06-10-2017 13:28:42)


C'est en faisant qu'on apprends.

Offline


Zut l'appel en sh ne fonctionne plus?

Interactive mode enabled

#!/usr/bin/env php

  [Symfony\Component\Console\Exception\CommandNotFoundException]
" is not defined.
  Did you mean this?
      update-rates

Le sh

#!/bin/sh
php Thelia update-rates
exit 0

J'ai essayé via un script php

<?php
exec('php Thelia update-rates') or die("erreur");
?>

Ca fonctionne en ligne de commande mais pas en cron.

Last edited by fredodefrance (02-11-2017 03:03:33)


C'est en faisant qu'on apprends.

Online


Ca fonctionne en ligne de commande mais pas en cron.

Le cron fonctionne dans un environnement différent de celui de ton shell, en particulier le PATH n'est pas le même.

Il te faut indiquer le chemin complet de tous les fichiers et exécutables que tu utilises. Par exemple, dans ton script :

#!/bin/sh
cd /dossier/de/tehlia
/path/vers/php ./Thelia update-rates
exit 0

Ça devrait le faire.

Tu peux aussi directement mettre dans ton cron la commande

/path/vers/php /path/vers/thelia/Thelia update-rates

CQFDev | Sites, boutiques, modules, développement et intégration pour Thelia 1 et 2

Offline


Merci pour l'aide.

Après maint tests la solution en ligne de commande fonctionne:
J'oublie le script.sh pour Thelia 2

Sous ispconfig3 et debian wheezy.

Pour la mise à jour EUR/USD 22H (cloture de la bourse de New York).
minutes heure jour du mois mois jour de la semaine
0 22 * * * /usr/bin/php -f /var/www/clients/client0/web3/web/Thelia update-rates


C'est en faisant qu'on apprends.