Modules Magento

La souplesse des modules

Présentation

Pour ajouter un module Magento, aucun autre fichier que ceux présents dans le module ne doit être modifié.

Les modules sont sur :

  • le site officiel de Magento Connect ;
  • les sites personnels de certains développeurs
  • les comptes GitHub

Firegento (association allemande des développeurs Magento) a créé le packagist Composer qui regroupe l'ensemble des modules Magento :

  • des comptes Github
  • des modules disponibles sur Magento Connect : les modules commandes tous par connect20/

Installation via Magento Connect

Cette méthode est à ne plus utiliser, l'installation manuelle est mieux, via Composer devient la nouvelle norme
  1. Se rendre sur la fiche d'une extension : http://www.magentocommerce.com/magento-connect/magento-community-modules-french-france-language-pack.html
  2. Copier/coller le code (il faut posséder un compte sur Magento Connect)
  3. Coller la clef dans Système > Magento Connect > Magento Connect Manager

Installer un module manuellement

Maitriser le module à installer en inspectant en détail les fichiers à déployer est une meilleure méthode que de faire confiance à Magento Connect.

DDL Module Magento

  1. Télécharger l'archive d'un module Magento connect via DDL Freegento en utilisant la clef disponible via Magento Connect
  2. Déplacer les fichiers à la racine du Magento
  3. Vérifier que les fichiers de template sont bien (en frontend) dans base/default et non dans default/default
  4. (Optionnel) Vérifier que le module est bien dans app/code/community (et non app/code/local)

Intérêt

  1. Maîtrise des fichiers qui impactent le back-office et le front-office
  2. Possibilité de modifier les fichiers avant qu'ils ne modifient la base de données
  3. Compression du module, débuggage pour les surcharges, faciliter la désinstallation
  4. Installation du module dans la bonne interface, ou du moins sortir l'interface default

Installer un module via Composer

Installation de composer :

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Pour plus d'informations sur Composer + Magento:

Ainsi pour un nouveau Magento, sur le dossier parent du dossier htdocs vide, il faut créer le fichier composer.json :

$ vi composer.json

Exemple d'installation d'un Magento entier via composer :

{
    "require": {
        "magento/core": "1.9.2.3"
        "magento-hackathon/magento-composer-installer":"*",
    },
    "repositories": [
        {
            "packagist": false
        },
        {
            "type": "composer",
            "url": "http://packages.firegento.com"
        }
    ],
    "extra":{
        "magento-root-dir": "htdocs/"
    }
}

Lancer l'installation de Magento 1.9.2.3 avec le module

$ composer --no-dev install

Installation d'un module :

  • Ajouter tout simplement "pulsestorm/magento-better404":"dev-master" dans require
  • Puis mettre à jour les dépendances de Composer :
$ composer --no-dev update

Gérer les conflits des extensions

Utilisation du module Extension Conflicts

Utiliser l'extension de La Maison Du Logiciel : http://www.maisondulogiciel.com/default/magento/magento-extension-conflict.html

Les conflits arrivent généralement sur des surcharges de la même classe. Il faut faire hériter les modules en conflits entre eux, ainsi :

  1. Avant : B1 extends A & B2 extends A
  2. Après : B1 extends A & B2 extends B1