fbpx
Pourquoi utiliser Magento ?

Magento et développement

Pourquoi utiliser Magento ?

> Michaël Seu

dimanche, 05 juillet 2020 - Lecture 2 min

Pourquoi choisir Magento ? Question que l'on nous pose régulièrement ? Nous l'avons donc posée à notre lead developper Michaël qui vous livre son point de vue côté développement.

Magento, c'est quoi ?

Plus de 250 000 sites marchands à travers le monde

Magento est une plateforme de e-commerce développée en PHP et éditée par Adobe (connu pour Photoshop, Illustrator...). Suivant la version (1.X ou 2.X), le code est open-source (disponible publiquement sur Github) et utilise des composantes de framework php (Zend Framework, Symfony...)

Pourquoi utiliser Magento ?

Des avantages et des inconvénients selon la typologie de votre projet

CÔTE AVANTAGES

  • Peut gérer un catalogue produit conséquent (système EAV, indexation du catalogue)
  • SEO-friendly
  • Gestion des commandes, produits et contenu facilitée via son interface administrateur
  • Possibilité de développer/ajouter de nouveaux modules (modes de paiement, de
    livraison…)
  • Code robuste, mises à jour de sécurité régulières
  • Encourage les bonnes pratiques de développement


Pour ou contre Magento ?

CÔTE INCONVÉNIENTS

  • N’est pas la meilleure solution pour des sites à petit catalogue
  • Nécessite un temps d’apprentissage non-négligeable pour en saisir les
    subtilités
  • Une optimisation du serveur web est de rigueur afin d'assurer une performance acceptable

Quelle est son architecture ?

Magento est codé sur une architecture MVC (Model-View-Controller), le standard des frameworks PHP, ce qui permet une séparation claire entre les données et la présentation

MODEL

Cette partie gère la récupération des data, que ce soit de la récupération de data en base de données (via une abstraction des tables en classes avec getter/setter) ou la transformation de data suivant une logique métier.

VIEW

Cette partie gère l’affichage des data, sur Magento cette partie est constituée de fichiers layout (fichiers .xml de définition) qui déterminent à quel endroit, sur quelle page un bloc de contenu doit s’afficher, et de fichiers template qui déterminent de quelle manière ces blocs s’affichent (fichiers .phtml, qui sont simplement des fichiers html où du code php peut être interprété)

CONTROLLER

C’est l’intermédiaire entre la gestion des data (Model) et la gestion de la présentation (View). Toutes les requêtes sont récupérées/envoyées par le biais de ces controllers, ils gèrent la logique d’utilisation.

Et son environnement ? 

Magento nécessite un serveur web compatible avec PHP 7.X (Nginx, Apache), une base de données MySQL (ou MariaDB / Percona sur Magento 2.X), un certificat SSL. Magento peut être couplé à un moteur de full page cache (par exemple Varnish, le plus répandu)

Pour des sites avec un traffic non négligeable, le consensus général est d’utiliser ce stack :

  • Une distribution Linux optimisée pour le web (le plus souvent Debian)
  • Nginx + PHP 7.X
  • Redis pour mettre en cache les sessions et éviter trop de calls couteux en performance
  • Varnish pour mettre en cache la plupart des pages du site et servir des pages entières pré-compilées