magento3-header
Adobe Commerce, E-commerce

Idée reçue #3 :
Magento est complexe à customiser

Par Benjamin G. le 27 octobre 2022

 Lecture 11 minutes

Idée reçue #3 : Magento est complexe à customiser

Adobe Commerce est une solution incontournable dans le monde du e-commerce. Son principal intérêt réside dans la possibilité de customiser et d’étendre à loisir ses fonctionnalités de base. Cette capacité de customisation repose sur de nombreux concepts de développement faisant de Magento une solution complexe à appréhender. Plusieurs années d’expérience sont nécessaires à un développeur pour maîtriser les subtilités de l’application et son potentiel. Mais, lorsqu’une solide expérience est acquise, la customisation devient une évidence.
Le succès d’Adobe Commerce sur le marché intéresse un grand nombre de développeurs. Mais sa complexité et son temps d’apprentissage poussent bon nombre de développeurs à abandonner et à s’arrêter à leur première impression. Ils passent ainsi à côté du réel potentiel de l’application et de la puissance de son modèle de conception. Ces mêmes développeurs véhiculent le préjugé que Magento est (trop) complexe à customiser.

Quelles difficultés de customisation peut-on rencontrer avec Adobe Commerce ?

Pour répondre à cette question, nous allons parcourir trois grands axes de customisation. Selon nous, chacun nécessite l’intervention d’un technicien aguerri :

  • Le templating
  • La customisation d’un comportement standard
  • Les montées de version

 

Le templating

Richesse fonctionnelle et réutilisabilité

Adobe Commerce propose une richesse fonctionnelle très importante. L’intégration graphique de ces fonctionnalités peut être longue. Afin de faciliter ce travail d’intégration, Magento propose deux thèmes standards couvrant l’ensemble du périmètre fonctionnel de l’application :

  • Luma, le thème le plus complet, est un modèle d’intégration d’un store de démonstration
  • Blank, un thème minimaliste, permet aux intégrateurs de partir d’une base plus simple

 

Voici à quoi ressemble le thème Luma.

 

En plus du nombre variable de fonctionnalités à intégrer dans un site e-commerce, Adobe Commerce se veut très modulaire. C'est-à-dire que chaque fonctionnalité est indépendante et réutilisable sur n’importe quelle page. Par exemple, une page de résultat de recherche peut reprendre exactement les mêmes composants qu’une page de listing produit. De même pour les sliders de produit d’un site, tous intégrés de la même façon (produits liés sur la fiche produit, cross sell dans le panier…).

Une connaissance fine de ces composants de base représente un précieux gain de temps dans le travail d’intégration d’une charte graphique.

 

Technicité du travail d’intégration

Comme expliqué précédemment, un intégrateur de la solution Adobe Commerce doit posséder des compétences techniques plus importantes qu’un intégrateur d’autres solutions du marché. Les différentes techniques et langages que l’intégrateur doit maîtriser sont :

  • Les techniques de récupération de la donnée

L’intégrateur doit avant tout connaître l’utilisation des Block et View Model. Il doit donc connaître le PHP, mais également avoir des compétences en développement back-office pour comprendre comment et où récupérer de la donnée. Il doit également avoir des notions sur le fonctionnement des caches applicatifs et le Full Page Cache pour ne pas dégrader les performances de la plateforme. Ce qui est loin d’être le plus simple sur la solution !

  • Les techniques d’agencement de la donnée

L’intégrateur doit également apprendre les notions de handles et de layouts qui sont les clés de la structuration des pages. Les handles sont des ensembles d’instructions de mise en page identifiés de manière unique, et qui servent de nom à un fichier de layout. Les layouts, eux, permettent de structurer une page en ajoutant des blocs qui s’imbriquent les uns dans les autres.

magento#3-img

Une bonne connaissance de ces deux notions permet d’agencer des composants nouveaux ou déjà existants de manière rapide et qualitative. Mais cela nécessite l’apprentissage du format de définition de l’agencement et des instructions possibles (XML).

  • Les techniques d’intégration de la donnée

Une fois les données récupérées, l’intégrateur doit les intégrer conformément aux maquettes en manipulant de nouvelles notions et langages techniques :

  • le PHTML pour l’affichage de la donnée (mélange de PHP et de HTML)
  • le CSS/LESS pour la partie visuelle

 

  • Les techniques liées à l’interaction des pages

Javascript joue aussi un rôle prépondérant sur la validation de données et l'interactivité des pages. Le Javascript de l’application repose sur des librairies Js plus ou moins connues et complexes : RequireJS, jQuery, KnockoutJs sont autant de nouveaux concepts à apprendre.

 

La customisation d’un comportement standard

La plateforme Adobe Commerce n’est pas plus longue à customiser qu’une autre solution. Mais elle est plus technique. Pour expliquer au mieux ce point il faut comprendre la volonté initiale de l‘éditeur.

Adobe Commerce est un CMS qui veut offrir à ses clients le plus grand nombre de fonctionnalités au sein de son corps applicatif. L’objectif ? Réaliser un site e-commerce rapidement et qui répond à un grand nombre de verticales métier, tout en permettant aux développeurs d’altérer facilement le fonctionnement standard pour répondre à des besoins spécifiques.

Pour cela, en plus des techniques d’intégration, la solution nécessite des connaissances approfondies :

  • Une connaissance fonctionnelle
  • Une connaissance technique

 

 

La connaissance fonctionnelle

Ce point fait référence à la connaissance de tous les outils que propose le standard de l’application et la maîtrise de ceux-ci.

Cette connaissance est primordiale pour pouvoir répondre de manière efficace à une demande client. La gamme de fonctionnalités fournie par Adobe Commerce étant large et complète, il est très fréquent d’avoir une fonctionnalité standard qui s’approche au plus près d’un besoin client évitant ainsi de conséquents développements.

De plus, Adobe Commerce possède une très grande communauté de développeurs à travers le monde. Un certain nombre d’éditeurs de modules permettent d’enrichir l’application avec de nouvelles fonctionnalités avancées pour un coût faible. Attention tout de même au choix de l’éditeur de module car bien que certains soient d’une fiabilité à toute épreuve, d’autres ne respectent pas les bonnes pratiques recommandées par Adobe Commerce. L’installation de leurs modules peut donc, passée l’économie initiale, représenter un mauvais investissement sur le plus long terme en augmentant la complexité et la maintenabilité de la plateforme

Enfin, Adobe Commerce réalise régulièrement des mises à jour ajoutant de nouveaux services. Le temps d’apprentissage consacré à la partie fonctionnelle doit donc être un travail continu.

 

La connaissance technique

La connaissance technique commence par la maîtrise des différents langages de programmation utilisés pour les différents besoins.

  • PHP pour le développement fonctionnel
  • MYSQL pour les relations avec la base de données
  • XML pour gérer les nombreux de fichiers de configurations
  • PHTML pour le templating
  • JS pour les interactions dynamiques de l’application
  • CSS/LESS pour le rendu graphique

 

En plus de ceux-ci, des langages liés à l’infrastructure (Apache, NGINX, VCL, REDIS CLI, etc.) sont également à connaître afin de permettre la mise en place d’une plateforme optimisée.

L’apprentissage de l’application repose également grandement sur la connaissance des différents concepts techniques (appelés aussi design pattern) intégrés à la solution.

Ces concepts ont été mis en place pour répondre à des problématiques rencontrées de manière récurrente lors de la conception de l’application ou pour anticiper les besoins des développeurs. Pour des questions de performances, de modularité, ou d’efficacité par exemple.

La connaissance et la maîtrise de ces concepts architecturaux sont nécessaires pour être en mesure de réaliser des customisations de qualité qui ne soient pas à revoir à chaque mise à jour de l’application. Cette partie est la plus longue à assimiler car chaque besoin est différent et nécessite une bonne connaissance globale pour parfaire les développements.

 

Les montées de version

Adobe Commerce est une solution qui évolue avec le temps. De nouvelles fonctionnalités apparaissent, les failles de sécurité remontées sont corrigées, les compatibilités avec les nouvelles versions de certains services sont gérées, tout cela entraîne donc régulièrement la nécessité de mettre à jour la plateforme. Il existe deux types de mise à jour :

  • Les mises à jour de sécurité nécessitant généralement quelques heures pour être mises en place
  • Les mises à jour majeures (ajoutant de nouvelles fonctionnalités par exemple) qui, elles, peuvent prendre plusieurs jours.

 

Dans les deux cas, contrairement à des solutions SaaS, la mise à jour nécessite l’intervention d’un technicien expert Adobe Commerce. La durée d’intervention est quant à elle dépendante de la manière dont a été customisée la plateforme. Le respect des différents concepts architecturaux et des différentes bonnes pratiques recommandées par Adobe Commerce simplifie énormément ces montées de version. À l’inverse, si les développements sont mal conçus, les mises à jour peuvent vite devenir très fastidieuses et nécessiter des dizaines de jours de développement.

Les modules communautaires installés peuvent eux aussi provoquer des soucis d’incompatibilité lors des mises à jour. Chaque module édité par un service tiers doit donc être analysé par un expert pour anticiper d’éventuels points de blocage. Chez Synolia, nous avons analysé le travail de nombreux éditeurs de modules et seuls quelques-uns se démarquent par la qualité de leurs développements.

 

Focus sur les moyens principaux d'altérer un comportement standard :

L’un des exemples les plus courants qui augmente très vite la durée d’une montée de version est la manière dont on veut altérer le fonctionnement d’une brique fonctionnelle de l’application. Dans Adobe Commerce il existe trois concepts pour réaliser cela. De manière très simplifiée :

  • Les plugins
    permettent de se placer avant, après ou autour d’une brique applicative pour modifier de la donnée.
  • Les observers
    permettent de se placer au moment d’une action précise sur un élément (par exemple, la sauvegarde d’un produit) et d’exécuter une action spécifique qui se veut autonome.
  • Les préférences
    permettent de remplacer la brique applicative standard par la nôtre.

 

Chacune des trois solutions peut être recommandée selon les cas. Mais chacune génère une complexité différente lors des montées de version.

 

La connaissance de ces concepts et l’accompagnement du client dans le choix des services ou des développements spécifiques sur le projet est donc une étape primordiale pour conserver une application performante et maintenable.

 

Notre expérience du développement custom avec Adobe Commerce

Intégrant Adobe Commerce depuis près de 15 ans, Synolia a acquis une solide expérience de la solution et de son implémentation dans le cadre de projets d’envergure. Avec une équipe d'experts certifiés sur la solution, Synolia fait aujourd’hui partie des partenaires de renom sur la solution. Les développements spécifiques réalisés par nos équipes sont minutieusement étudiés et systématiquement réalisés dans une optique de qualité, de performance et de maintenabilité.

Notre volonté est de concevoir et maintenir des plateformes à l’épreuve du temps, ce qui passe par :

  • Un respect strict des bonnes pratiques de l’éditeur
  • Une utilisation maximale des composants existants et maintenus par l’éditeur comme base de développement
  • L’utilisation de modules tiers édités par des partenaires de confiance en charge de l’édition de l’enrichissement et de la maintenance de leurs modules.
  • L’utilisation de services partenaires dédiés experts de leurs sujets, plutôt que de multiplier les développements (merchandising, recherche, avis clients…)

De cette manière, nous pouvons concentrer nos efforts sur ce qui compte vraiment pour nos clients : des développements spécifiques ciblés et à forte valeur ajoutée.

Très concrètement, voici quelques exemples pour illustrer notre approche de la customisation de la solution Adobe Commerce.

 

  • Exemple n°1 :

En tant qu’administrateur du site, notre client souhaite pouvoir utiliser Google Tag Manager pour déployer des balises (extraits de code ou pixels de suivi) de manière autonome.

Notre réponse :

Le standard de l’application propose un module permettant cette connexion. Aucun développement n’est à prévoir. Attention toutefois car, le module standard n’a que peu d’événements permettant de configurer les balises. Il convient pour des besoins très simples. Mais si les demandes sont plus complexes, il nous faut alors prévoir des développements spécifiques ou un module proposé par un éditeur tiers.

 

  • Exemple n°2 :

En tant qu’administrateur du site, notre client souhaite pouvoir utiliser Google Tag Manager pour déployer des balises (extraits de code ou pixels de suivi) de manière autonome. Il souhaite également remonter de la donnée sur Google Analytics permettant de suivre le parcours utilisateur jusqu’à son achat.

Notre réponse :

Le standard de l’application nous semble trop limité pour répondre à ce besoin. L’utilisation d’un module réalisé par un éditeur de confiance est nécessaire. Son utilisation permet la connexion avec GTM et ajoute au standard de l’application de nombreux événements permettant de configurer des balises de manière précise.

 

  • Exemple n°3 :

En tant qu’administrateur du site, notre client souhaite mettre en place le plan de taggage fourni par son agence SEO. Ce plan de taggage a vocation à remonter un maximum de données que ce soit sur les pages standards de la solution et sur toutes les pages issues de développements spécifiques au projet.

Notre réponse :

Le plan de taggage devant remonter de la donnée sur des pages spécifiques au projet, aucun module standard ou d’éditeur ne peut convenir. Cependant, pour limiter les développements, nous installons un module réalisé par un éditeur de confiance et qui permet de fournir une importante base de travail. Nous l’enrichissons ensuite avec les recommandations du plan de taggage.

Alors, que pensons nous de cette idée reçue ?

Ici aussi, la réponse est non ! Adobe Commerce n’est pas plus longue à customiser qu’une autre solution. Mais elle requiert effectivement des connaissances techniques poussées qui sont, elles, longues à acquérir.

Faire le choix d’un intégrateur spécialisé avec une équipe expérimentée de techniciens et chefs de projets certifiés est la clé pour des projets Adobe Commerce réussis et facilement maintenables dans le temps.

 

Je prends contact

Découvrez également...