Shellscripts Magento

Dans ce billet je vais vous présenter les différents shellscripts proposés par la solution e-commerce Magento.

L'avantage de ces scripts est qu'ils permettent d'exécuter des actions automatisées sur une instance Magento, en les lançant depuis la crontab.
Au niveau du file system on les retrouve dans les répertoires magento/ (racine) et magento/shell.

Répertoire magento/ (racine)

cron.php

Ce script constitue le point de lancement du système de cron interne à Magento. Pour utiliser ce système un appel au fichier doit être placé dans la crontab Linux.

Exemple :
*/5 * * * * /absolute/path/to/bin/php (chemin de php) -f /absolute/path/to/magento/cron.php

cron.sh

Même utilité que cron.php à la différence que cron.sh va automatiquement chercher le chemin du binaire PHP sur votre OS.

get.php

Ce script ne peut pas être exécuté en tant que tel, il est utilisé par Magento dans le cas où le serveur Web ne supporte pas la ré-écriture des URLs (.htaccess dans le répertoire media).

mage

Ce script, très pratique, permet de gérer les extensions Magento Connect de votre instance Magento.

Exemple pour consulter la liste des extensions installées :
./mage list-installed

Il est possible, entre autres, d'installer, de mettre à jour et de supprimer des extensions.
Comme cette commande est très puissante, elle pourra faire l'objet d'un billet ultérieur dans lequel je pourrai détailler l'ensemble des options disponibles.

Répertoire magento/shell

abstract.php

Contient la classe Mage_Shell_Abstract qui sera étendue par les classes présentes dans les 3 autres fichiers du répertoire.
Il ne peut pas être exécuté de manière isolée.

compiler.php

Ce script va permettre de manager l'option de compilation native de Magento (comme on le ferait dans le backoffice Système / Outils / Compilation).
Pour rappel cette option permet de compiler l'ensemble des fichiers Magento et de les placer dans un répertoire unique afin d'améliorer les performances (25-50% d'après la documentation officielle).

Vérifier l'état de la compilation :
php compiler.php state
on obtient le résultat suivant :

Compiler Status: Disabled
Compilation State: Not Compiled
Collected Files Count: 0
Compiled Scopes Count: 0

Lancement d'une compilation :
php compiler.php compile

Vérifier l'état de la compilation (après compilation) :
php compiler.php state
on obtient le résultat suivant :

Compiler Status: Enabled
Compilation State: Compiled
Collected Files Count: 6643
Compiled Scopes Count: 4

Désactiver la compilation avec suppression des fichiers
php compiler.php clear

indexer.php

Ce script va permettre de manager l'option d'indexation de Magento (comme on le ferait dans le backoffice Système / Gestion des indexes).
Pour rappel, cette option permet d'indexer les data de la base de données Magento (produits, catégories, prix, ...) dans le but d'en accélérer l'accès.

Liste des différents index disponibles :
php indexer.php info

Statuts des différents index :
php indexer.php --status

Réindexation d'un index en particulier :
php indexer.php --reindex catalog_product_price

voici l'intitulé des index disponibles :

  • Attributs de produit : catalog_product_attribute
  • Prix produit : catalog_product_price
  • Réécriture d’URL du catalogue : catalog_url
  • Données fixes de produit : catalog_product_flat
  • Données fixes de catégorie : catalog_category_flat
  • Produits dans catégorie : catalog_category_product
  • Recherche catalogue : catalogsearch_fulltext
  • État du stock : cataloginventory_stock
  • Aggrégation des tags : tag_summary

Réindexation de tous les index :
php indexer.php reindexall

log.php

Tous ceux qui ont utilisé Magento savent que les tables de logs (en particulier log_url, log_url_info, log_visitor et log_visitor_info) grossissent très rapidement. Il peut être judicieux de purger à intervalle régulier.
Ce script permet de le faire.

Statuts des tables de logs :
php log.php status

Purge de l'ensemble des tables de logs :
php log.php clean

Purge de l'ensemble des tables de logs en conservant les logs des 20 derniers jours :
php log.php clean --days 20

Billet terminé ! J'espère que vous avez pris autant de plaisir à le lire que moi à l'écrire.
N'hésitez pas à contacter l'équipe magento : magento (at) netapsys (dot) fr

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.