Bien choisir une extension pour Magento

MagentoMagento est une des plateformes e-commerce qui connaît un très fort développement ces dernières années. Avec 240 000 sites e-commerce, Magento est le choix d’un site sur trois dans le top 100 Alexa (top des sites). Son model Open Source a permis de développer une importante communauté autour de l’outil et Magento a mis en place un système de partenariat avec des intégrateurs. La plateforme compte 300 partenaires technologiques et 2800 certifiés parmi lesquels 96 en France (toutes certifications confondues).

Les développeurs Magento peuvent mettre à disposition de la communauté des extensions permettant de rajouter des fonctionnalités à votre site. Bien que le model Open Source permette à tout le monde de développer quelque chose pour le mettre à disposition de la communauté, la qualité des modules varie en fonction de l’expérience des développeurs et certains modules sont parfois nocifs pour la stabilité de votre plateforme e-commerce sous Magento.

Nocifs…mais comment cela ?

Magento Connect, la “place de marché” de Magento a un catalogue de plus de 6 000 extensions. Ce pannel d’extensions vous permet de répondre à de nombreuses problématiques. Ces extensions vous permettront de rajouter une méthode de paiement, une méthode de livraison, d’ajouter un blog, de brancher Magento à une solution CRM ou encore de faire de l’affiliation. Bien d’autres possibilités vous sont offertes via ces extensions et pour couronner le tout, la plupart de ces extensions sont entièrement gratuites.

Le model Open source et la grande communauté autour de l’outil permettent aux développeurs de se former (pas forcément correctement quand on est seul) facilement sur Magento. Un développeur pourra créer quelque chose de fonctionnel sans l’aide d’un collègue plus expérimenté. Ainsi de nombreux développeurs pleins de bonnes intentions vont développer des modules qui fonctionneront parfaitement mais qui ne seront pas optimisés pour la performance ou/et qui ne respecterons pas le model MVC de Magento ne permettant plus à votre page de se mettre en cache et rendant le maintenabilité de votre site plus difficile. Sur des sites qui n’ont pas une forte volumétrie ou qui n’ont pas un fort trafic ce n’est pas bloquant mais dès lors que votre site devient plus important, vous montez en charge et le site peu devenir très lent  et compliqué à maintenir.

Comment trouver une extension pour Magento ?

 Tout d’abord si  vous ne l’avez encore jamais fait, sachez qu’il y a plusieurs façons de récupérer une extension :

  1. Magento Connect :
    Sur cette plateforme vous trouvez des modules gratuits et payants. Vous ne pourrez par contre télécharger que les modules gratuits. Pour les modules payants, vous serez redirigé vers le site de l’éditeur.
  2. Les sites des éditeurs :
    C’est souvent vrai pour les modules payants, certains éditeurs vous permettent de payer une licence et de télécharger un module depuis leur plateforme e-commerce.
  3. Github :
    Github étant devenu une des plateformes favorites pour les développeurs Magento, de nombreux développeurs ont maintenant un répertoire github public vous permettant de télécharger gratuitement et facilement un module puis d’y contribuer en proposant des modifications pour la prochaine version.

Comment installer une extension Magento ?

Sur Magento, l’installation d’une extension est très simple.

Si vous récupérez le code d’un module depuis github ou sur le site d’un éditeur, l’arborescence des dossiers de Magento est souvent respectée. Il vous suffit donc juste de déposer les sources à la racine de votre dossier d’installation de Magento et d’accepter la fusion des fichiers. Videz votre cache et votre module est prêt à l’emploi.

MagentoSi vous récupérez le code d’un module depuis Magento Connect, vous pouvez installer un plugin en vous connectant au module « Connect Manager » de votre plateforme.

Allez dans « System > Magento Connect > Magento Connect Manager ».

MagentoAprès vous être connecté avec votre login et votre mot de passe administrateur, vous pourrez installer un module via sa clé Magento Connect.

MagentoCliquez sur le bouton « install now » et sélectionnez votre version de Magento Connect (ici la 2) puis validez. Vous verrez alors la clef magento2 (ici l’url dans le champ ci-dessous).

image5Insérez la clef que vous trouverez sur Magento  Connect dans le champ réservé à cet effet puis cliquez sur « install ». Votre module est installé !

Comment vérifier qu’une extension n’est pas nocive pour votre site e-commerce ?

Si vous n’êtes pas sur de la qualité d’une extension, il est recommandé de faire quelques mesures de performance avant et après l’installation pour voir son impact sur le chargement de vos pages.

Ainsi, vérifiez le nombre de requêtes SQL, la mémoire utilisée et le temps de chargement des pages impactées par l’extension avant et après leur installation. Si ces valeurs ont fortement augmentées, n’installez pas cette extension (ou soyez conscient de son impact sur la performance de votre site e-commerce).

Si vous avez un développeur dans votre équipe, demandez-lui de faire une revue de code. Il s’agit ici de vérifier que le code respecte les standards et que le module sera simple à maintenir. Le développeur pourra également corriger, si besoin, d’éventuels problèmes de performances détectés précédemment, afin que la montée en charge de votre plateforme e-commerce ne soit pas impactée par ce module.

 Afin de repérer les problèmes qui impactent la performance, je vous invite à lire le petit livre blanc de Magento Expert Consulting Group, « Conquer the 5 Most Common Magento Coding Issues to Optimise Your Site For Performance » que vous pourrez télécharger ici :
http://info.magento.com/rs/magentocommerce/images/Conquer_the_5_Most_Common_Magento_Coding_Issues_to_Optimize_Your_Site_for_Performance.pdf

Il s’agira principalement d’éviter ce genre de chose :
for ($i = 0; $i < count($rows); $i++) {

//some code
}

Mais de préférer à la place :
$rowNum = count($rows);

for ($i = 0; $i < $rowNum; $i++) {
//some code
}

Ou encore ce genre de chose :
foreach ($this->getProductIds() as $productId) {

$product = Mage::getModel(‘catalog/product’)->load($productId);
$this->processProduct($product);
}

Mais de préférer à la place :
$collection = Mage::getResourceModel(‘catalog/product_collection’)

->addFieldToFilter(‘entity_id’, array($this->getProductIds())) ->addAttributeToSelect(array(‘name’));

foreach ($collection as $product) {
$this->processProduct($product);
}

D’autres « erreurs principales » sont présentes dans le petit ebook d’ECG, lisez le. Un développeur expérimenté doit normalement déjà connaître ce genre de règles et lui seul pourra vous dire si une extension est « propre » ou non pour être utilisée sur votre site.

Formation Magento développeur à Lille

Vous avez des bases en développement et souhaitez être formé à Magento ? La formation Magento développeur d’Eurateach va vous permettre de gagner du temps. Cette formation sur 2 jours animée par Pierre Fay d’Itelios, expert Magento, va vous permettre de maîtriser ce CMS et d’optimiser votre commerce en ligne.

Au cours de cette formation, vous verrez comment installer Magento, pourquoi utiliser un plugin, comment créer son module Magento ou encore les templates proposés par Magento… Développer sous Magento n’aura plus aucun secret pour vous !

Plus d’informations au 03 66 72 27 03 ou contact@eurateach.com