advancedcache

Mettre en cache le plan du site avec Soon_AdvancedCache

Sur Magento, afficher le plan du site peut vite être consommateur de ressources. En effet, pour le générer, Magento scanne l’ensemble des catégories du site et y applique différents filtres – par exemple, un filtre sur le statut de la catégorie afin de ne pas l’afficher si elle n’est pas active sur la vue magasin en cours. Mettre le plan du site en cache est donc une bonne chose à faire surtout que celui-ci n’est pas destiné à être souvent modifié.

Cadre technique

  • Nous utilisons ici Magento CE 1.6.0.0 mais ceci devrait fonctionner pour toutes les versions de Magento supportées par Soon_AdvancedCache.
  • Le module Soon_AdvancedCache doit être installé (voir Une boutique plus rapide avec Soon_AdvancedCache
  • Pour cet exemple, nous avons décidé d’utiliser le plan du site des catégories au format « tree » (avec arborescence). Pour ce faire, rendez-vous en back-office menu « Système > Configuration > [Catalogue] Catalogue > [Plan du site] Utiliser l’arborescence des catégories pour le plan de site : Oui »

Nous allons donc mettre en cache le plan du site des catégories. Après ce tutoriel, vous serez capable de mettre aussi en cache le plan du site des produits qui est encore plus consommateur de ressources que celui des catégories !

Création du cache de bloc

Pour créer un nouveau cache de bloc, rendez-vous dans le back-office menu « Système > Gestion avancée du cache > Caches de blocs ». Puis « Ajouter ».

Nous devons maintenant rassembler les informations nécessaires pour alimenter ce cache de bloc.

Rassembler les informations pour Soon_AdvancedCache

  • Identifiant (Tag) : cet identifiant unique permet de créer la clé de mise en cache. Son nom est libre tant qu’il est unique. Nous l’appelons « seo_sitemap_category_tree »
  • Classe de bloc : c’est la classe Block de Magento utilisée pour créer le sitemap des catégories au format « tree ».

    Pour la trouver :

    • ouvrir le fichier de layout catalog.xml, par défaut /app/design/frontend/base/default/layout/catalog.xml
    • on note qu’il existe le handle catalog_seo_sitemap_category_tree qui est celui utilisé pour gérer le sitemap des catégorie en mode « tree »
    • on note aussi qu’il y a un noeud
      
      

      C’est celui-ci qui sert à générer le sitemap qui nous intéresse. L’attribut « type » étant catalog/seo_sitemap_tree_category, on en déduit que la classe de Block est Mage_Catalog_Block_Seo_Sitemap_Tree_Category (fichier /app/code/core/Mage/Catalog/Block/Seo/Sitemap/Tree/Category.php)

  • Nom du bloc dans le layout : toujours en utilisant le noeud évoqué ci-dessus, on récupère son attribut « name » : seo.sitemap.sitemap_tree
  • Description : ce qui nous plaît. Par exemple : Plan du site des catégories avec arborescence.
  • Expiration : nous choisissons « Catalogue (produits et catégories) » car, logiquement, le plan doit être regénéré quand le cache du catalogue arrive à expiration. Pour rappel, ce délai est configurable dans le menu « Système > Gestion du cache > [Gestion des délais d’expiration] »
  • Configuration spéciale : on laisse vide car aucune option ne s’applique à notre besoin.
  • Statut : Activé bien sûr !

Configuration du cache de bloc

Résumons la configuration de notre cache de bloc :

  • Identifiant : seo_sitemap_category_tree
  • Classe de bloc : Mage_Catalog_Block_Seo_Sitemap_Tree_Category
  • Nom du bloc dans le layout : seo.sitemap.sitemap_tree
  • Description : Plan du site des catégories avec arborescence
  • Expiration : Catalogue (produits et catégories)
  • Configuration spéciale : vide
  • Statut : activé

Gains en rapidité

Sur notre environnement de développement

Avec les sample data de Magento contenant 27 catégories

  • Temps de chargement du plan du site sans le cache de bloc : 620ms
  • Temps de chargement du plan du site avec le cache : 462ms
    • Soit un gain de 25%

      Sur le projet Tealuna

      Tealuna (www.mode-by-tealuna.com) est un projet que Soon gère et contenant 850 catégories + quelques développements spécifiques alourdissant la génération du plan du site.

      • Temps de chargement du plan du site sans le cache de bloc : 4650ms
      • Temps de chargement du plan du site avec le cache : 575ms
      • Soit un gain de plus de 85% !

        Libre à vous de vous inspirer de ce billet pour profiter de toute la puissance de Soon_AdvancedCache !

Cache, E-Commerce, Magento, Optimisation

Laisser un commentaire

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