Shopify vs Magento : le point de vue d'un développeur
Publié: 2019-04-23Lorsque vous essayez de prendre la décision entre Shopify et Magento, vous entendrez souvent que Shopify est une solution hébergée, alors que Magento est un logiciel open source. Ceci est souvent cité comme la principale différence entre Shopify et Magento. La solution hébergée vous évite d'avoir à installer et à héberger votre boutique en ligne, mais le logiciel open source vous permet un plus grand degré de personnalisation.
Mais qu'est-ce que cela signifie vraiment pour les développeurs dans la pratique, et quel impact ce choix a-t-il sur les commerçants et leurs clients ?
Sécurité des informations
Dans le monde Magento, chaque boutique en ligne est sa propre installation indépendante du logiciel Magento. Il y a environ 200 000 magasins exécutant Magento, et ils exécutent tous de nombreuses versions, modules, correctifs et personnalisations différents.
Magento est un logiciel open source, ce qui signifie que son code (dans toutes les versions et tous les correctifs) est accessible au public et que quiconque peut le consulter en ligne. Ceci, associé au fait qu'il existe plus de 200 000 magasins Magento dans la nature, qui traitent tous des données sensibles sur les clients et les paiements, fait de Magento une cible extrêmement attrayante pour les acteurs malveillants cherchant à trouver et à exploiter les vulnérabilités de sécurité du logiciel.
Lorsqu'un correctif de sécurité est publié par l'équipe Magento, chaque magasin Magento doit être mis à jour séparément, et il est de la responsabilité de chaque marchand de s'en assurer. Ce processus est souvent compliqué par le fait que les magasins Magento peuvent varier considérablement dans leur mise en œuvre. Une mise à jour qui s'applique avec succès à un magasin peut facilement causer des problèmes lorsqu'elle est appliquée à un autre magasin en raison de différences dans les modules tiers, les thèmes ou les personnalisations locales.
Pour les commerçants et les développeurs, cela peut créer une charge de travail importante et inattendue, comme dans le cas de la mise à jour de sécurité SUPEE-6788 de Magento. Cette mise à jour a corrigé plusieurs vulnérabilités dans Magento, mais a également rompu la compatibilité descendante avec des centaines de modules communautaires populaires. En plus d'appliquer le correctif de sécurité, tous les modules communautaires concernés devront être mis à jour pour être compatibles. Cela a donné aux développeurs le choix difficile d'attendre que les fournisseurs publient des versions mises à jour de leurs modules communautaires ou de mettre à jour manuellement ces modules eux-mêmes. S'ils attendent les vendeurs, leur boutique Magento reste vulnérable ; s'ils mettent à jour manuellement ces modules, le code du module n'est plus synchronisé avec la version du fournisseur, ce qui complique potentiellement les futures mises à niveau.
Et toutes les vulnérabilités de sécurité ne se valent pas. Prenons par exemple SUPEE-5344, communément appelé le "bug du vol à l'étalage", une vulnérabilité de Magento qui permettait aux attaquants d'obtenir un accès administrateur à une boutique et un accès complet à sa base de données. Le risque que vous prenez en ne corrigeant pas régulièrement votre boutique Magento est extrêmement élevé, et le processus parfois compliqué et coûteux d'application des correctifs de sécurité a fait que de nombreuses boutiques Magento restent non corrigées et vulnérables à ce jour.
Depuis que je suis passé au développement sur la plate-forme Shopify Plus, je n'ai pas eu à passer de temps à corriger les magasins Shopify pour les vulnérabilités de sécurité. C'est l'un des plus grands avantages du choix d'une solution hébergée par rapport à un logiciel open source. La plate-forme et toutes les données sensibles sont hébergées et sécurisées par Shopify, une société cotée en bourse de plusieurs milliards de dollars.
Shopify prend la responsabilité de maintenir sa plate-forme à jour et vos données sécurisées, permettant aux développeurs de se concentrer davantage sur des projets qui aideront les marchands à atteindre leurs objectifs commerciaux.
Hébergement, trafic Web, bases de données et mise à l'échelle
Dans les tests A/B, Amazon a découvert qu'un retard de 500 millisecondes dans la vitesse de chargement des pages entraînait une baisse de 5 % des ventes. Google a également constaté qu'un retard de 500 millisecondes entraînait une baisse de 20 % du trafic de recherche et des revenus publicitaires, et tuait la satisfaction des utilisateurs.
L'optimisation des vitesses de chargement des pages est en effet très importante.
C'est un autre domaine où les solutions de commerce électronique hébergées comme Shopify brillent vraiment. Votre boutique en ligne et tous les médias associés sont hébergés par Shopify, et leur modèle commercial signifie que Shopify ressent la même pression qu'Amazon pour que vos pages se chargent rapidement afin de maximiser les taux de conversion. Votre boutique en ligne est toujours disponible et très rapide, et ce n'est jamais un souci pour les marchands ou leurs développeurs.
En tant que développeur Magento, vous pensez constamment à la vitesse de chargement des pages et à la charge de la base de données.
Magento est une très grande base de code composée de milliers de fichiers et de millions de lignes de code. Il stocke les configurations du système, du module et de la mise en page dans le système de fichiers sous forme de fichiers XML volumineux dont l'analyse est coûteuse en calculs. Il implémente le modèle de stockage de données Entity-Attribute-Value, répartissant les données associées sur de nombreuses tables différentes de la base de données, nécessitant des requêtes de base de données compliquées et coûteuses, même pour des choses simples comme la récupération de données produit. Tout cela fait de Magento l'une des plates-formes les plus difficiles à héberger et à faire évoluer, et à mesure que le trafic sur votre site augmente, les solutions à ces défis deviennent de plus en plus complexes.
Pour accélérer les choses en production, Magento implémente de nombreuses couches de mise en cache au niveau de l'application, notamment des caches pour la configuration du système, la mise en page XML, la sortie HTML en bloc et la génération de pages complètes. Cela signifie qu'en tant que développeur, vous devez vous assurer (par une réflexion et des tests minutieux) que toutes les personnalisations locales et les modules communautaires utilisent correctement tous ces caches, car même une seule invalidation du cache peut avoir un impact considérable sur les vitesses de chargement des pages.
Pour le commerçant, tout cela se traduit par une augmentation des coûts globaux de développement et d'hébergement, et des temps de chargement des pages sensiblement plus lents dans la majorité des cas.
Développement, technologie et ressources
En termes de développement, la principale différence entre Magento et Shopify est que Magento est un cadre de commerce électronique monolithique, tandis que Shopify est une plate-forme hébergée interagissant avec une grande variété de services externes.
Lorsque vous développez pour Magento, toutes vos activités de développement se déroulent dans son cadre ; vous ajoutez et modifiez du code dans ce cadre pour étendre et modifier ses fonctionnalités. Tout votre code s'étend du cœur de Magento, qui utilise un ensemble prédéfini de technologies et réglemente étroitement la façon dont vous les utilisez.
En tant que développeur Magento, vous écrivez du PHP orienté objet héritant des bibliothèques Zend au-dessus d'une base de données MySQL, avec Prototype et parfois jQuery sur le frontend. C'est un cadre très compliqué et hautement spécifié, et il peut falloir beaucoup de formation spécialisée pour devenir productif. Cela ajoute des coûts et un degré de difficulté à l'embauche et à l'intégration.
Lors du développement pour Shopify, vous étendez et modifiez ses fonctionnalités en utilisant une combinaison du moteur de modèles Liquid, des scripts Shopify, des webhooks, des SDK JavaScript et en créant des applications et des services personnalisés qui interagissent avec la plateforme Shopify en externe.
Shopify fournit une puissante API REST, qui permet aux applications externes d'accéder à la plate-forme Shopify et donne aux développeurs la liberté de prendre davantage de leurs propres décisions technologiques. Vous pouvez développer pour la plate-forme Shopify en utilisant n'importe quel langage de programmation ou framework que vous aimez. Donner aux développeurs et aux agences la possibilité de choisir parmi des technologies plus modernes et familières confère de nombreux avantages, notamment une efficacité accrue des développeurs et la possibilité d'embaucher à partir d'un vivier de talents beaucoup plus large.
Ce que tout cela signifie pour les marchands
Choisir la bonne solution de commerce électronique pour votre entreprise ne se limite pas aux listes de fonctionnalités et aux cases à cocher. Il est également important de tenir compte de l'impact de votre décision sur le cycle de développement, sur la sécurité des données de vos clients et sur votre capacité à faire évoluer la plate-forme en fonction de la croissance de votre entreprise.
Avec une solution hébergée comme Shopify, vos données sensibles seront généralement plus sécurisées. Votre boutique aura des temps de chargement de page constamment rapides, évoluera automatiquement et aura une capacité quasi illimitée pour absorber les pics soudains de trafic Web. Et surtout, vos développeurs seront en mesure de travailler plus efficacement en utilisant des technologies modernes et familières, en réduisant vos coûts de développement et en allouant une plus grande partie de votre budget à la croissance des ventes et à la réalisation de vos objectifs commerciaux.