Article Tech

Magento 2 : Est-il possible de créer un eCommerce headless en open source ?

Publié le
17/12/24
Temps de lecture
5
mins
image de direction artistique de Zento

Depuis quelque temps, la Hype Headless a envahi l’éco-système de l'eCommerce. Toutes les solutions ont communiqué autour de leur framework headless, y compris Shopify via la sortie de Hydrogen.

Celui-ci est d’ailleurs disponible en open source, même s' il est nécessaire de disposer d’une boutique shopify payante pour pouvoir l’utiliser….

L’objectif de l’article d'aujourd'hui est de faire le point, en cette fin d’année 2024, sur la plateforme Magento afin de répondre à la question : Est-ce que l’on peut faire du eCommerce headless en open source aujourd’hui ?

QUELQUES RAPPELS

Rappelons d’abord, pour ceux qui ne le savent pas encore, que Magento (dans sa version 2) est une solution de référence dans le monde de l’eCommerce éprouvée depuis plus de 15 ans. Elle existe en open-source (CE Community Edition) et en version Enterprise (Adobe commerce maintenu par… Adobe). 

Solution hyper malléable et très puissante fonctionnellement, elle peut répondre à tous les besoins eCommerce même le headless. Nous nous intéressons ici à la solution Community Edition.

Une application “headless” (sans tête) est une solution fonctionnelle découpée en 2 applications TECHNIQUES distinctes. Pour faire simple, une première application technique avec des web services généralement GraphQL, en lieu et place d’une interface graphique. Ces Web Services peuvent être consommés par une seconde application, qui permettent de mettre en forme le “front” l’interface utilisateur. Cela veut donc dire 2 codes sources différents à maintenir et tout ce qui va avec. A première vue, on se dit pourquoi une telle complexité ? Eh bien simplement pour 3 raisons majeurs:

  • Pouvoir avoir un front multi application récupérant ses informations de plusieurs sources de données, par exemple pour afficher des informations issues d’un CRM…
  • Pouvoir faire évoluer facilement le frontend sans impacter le back office.
  • Avoir un très fort besoin de fonctionnalités offline

Dans la presse technique, on parle de FaaS (Frontend As A Service).

Vous avez les idées claires ? Eh bien c’est parti pour un petit tour des solutions headless open-sources compatibles avec Magento en cette fin d’année 2024

LES SOLUTIONS EXISTANTES

Vue Storefront (Alokai)  : 

Créée en 2017, cette solution headless open-source a été à l’origine spécifiquement pensée pour Magento. Se basant sur une stack Nuxtjs/Vuejs elle permet d’avoir un développement front plus efficace et plus performant.

Cette solution constituait une bonne opportunité mais la solution a été rachetée 2023, et, sous le nom Alokai elle n’existe désormais plus qu’en version commerciale…

La version officielle bénéficie de l’intégration dans la MACH Alliance pour faciliter la connexion avec différentes applications (SAP, Salesforce, Algolia, Content-full, Stripe…). La solution Open Source n’est par contre plus maintenue ce qui la rend désormais difficile a envisager : Version de NodeJs déprécié (Node 16), plus de 200 failles de sécurité dont une dizaine critiques et une cinquantaine majeures… En open source, elle est donc à éviter. Je vous rassure, la version Enterprise est bien maintenue (logo troll à mettre)

StoreFront X

Créée en 2021, cette solution headless open-source a été créée spécifiquement pour Magento. Elle se base aussi sur une technologie qui se base sur Nuxtjs/VueJs.

Cette technologie existe en différents modes : 

  • La version minimaliste (Vanilla Magento) n’est malheureusement pas compatible avec les versions récentes de Magento (disponible en 2.4.5 vs 2.4.7 soit environ 1 an de mise à jour de retard). Le module composer utilitaire n’est quant à lui pas compatible php 8 (storefront-x/sfx_core). Cette version ne contient pas entre autres la gestion du sitemap et du robot.txt (adieu la SEO…). 
  • Pour la version full pack, elle demande l’obligation de l’achat de Module Amasty payant mais l’accès au site de démo n’est pas opérationnel. 

A date, la solution ne nous semble pas à conseiller de par le manque de visibilité  sur son bon fonctionnement.

PWA Studio

PWA Studio est une solution headless open-source directement maintenue par Adobe, l’éditeur de Magento. Elle se base sur une stack ReactJs. Attention, la version de React est ici une version customisée par Adobe…

Cette technologie est maintenue en termes de patch de sécurité et de montée de version magento mais malheureusement, certaines fonctionnalités de Magento ne sont pas implémentées côté Front. 

Le site Adobe Commerce présente la couverture fonctionnelle de l’implémentation Venia (Thème de base de PWA Studio) 

Certaines fonctionnalités “standards” d’Adobe ne sont pas encore totalement couverte côté front : Bundle & grouped product, product with custom option, reorder, review, third party payment,...Pour ces fonctionnalités 100% de l’UX/UI est a développer en s’appuyant sur les API GraphQL disponibles.

Ainsi, si vous souhaitez vraiment présenter un produit bundle en PWA, c’est à vous de l’implémenter. 

Cela veut dire qu’il vous faut:

  • faire l’appel graphql pour récupérer les données du back-office, 
  • gérer les différents rendus au sein du site (page produit, panier, catégorie produits, recherche, récapitulatif de la commande…)
  • faire une mise au panier convenable (ne pas avoir dans le panier le bundle sans les produits qui le compose) ;

Donc la charge d’intégration pour une fonctionnalité comme la gestion des bundles est conséquente. Et c’est la même chose pour les autres fonctionnalités non couvertes.

A date, c’est la seule solution headless open-source maintenue pour Magento mais comme vous le constater elle est incomplète graphiquement.

La nécessité de devoir développer une bonne partie du front nécessaire pour la mise en œuvre de la solution e commerce n’est pas le seul souci d’un projet magento headless !

No items found.

ECOSYSTEME MAGENTO ET HEADLESS

Une des richesses de Magento est son écosystème de modules développés par des éditeurs tiers. Dans le cadre d’un projet Headless avec Magento, il y a une très grosse cure d’amaigrissement dans cet écosystème. 

Chez Zento, on estime que seulement 15 à 20 % des modules ayant un impact sur le front sont compatibles avec un fonctionnement headless. Quand on dit compatible, cela signifie qu’il y a tout au plus des web services consommables. 

Dans certains cas, des éditeurs publient des modules add-on PWA qui portent sur Venia les fonctionnalités de leur module. A titre d’exemple le module RMA (gestion des retours) d’Amasty dispose d’un add-on PWA qui doit être acheté en complément du module standard et qui alourdit le coût récurrent des modules complémentaires.

LA PROBLÉMATIQUE DES PSP

Dans le cas où la portabilité PWA n’est pas prise en charge par l’éditeur du module, l’implémentation est à faire de manière spécifique…avec les problèmes associés. Nous pouvons illustrer le sujet avec le cas des PSP.

Initialement, la phase de paiement suit un protocole de sécurité entre le back office Magento et le PSP. Cela est implémenté par le module fourni par le PSP et classiquement l’implémentation suit l’un des 2 fonctionnement suivants :

  • soit il y a une redirection sur le site du PSP qui revient sur le site une fois le paiement réalisé
  • soit le module PSP fourni des web components directement intégrés à Magento grâce à son module ;

En headless, le front dissocié change tout car le front ne peut pas disposer des éléments de sécurité nécessaires pour la communication avec les API du PSP. Ce souci de sécurité ne peut être résolu qu’en utilisant des API spécifiques fournies par le module PSP pour permettre cette communication (encapsulation de la sécurité par le back office Magento).

Par ailleurs, le PSP doit aussi fournir des web components intégrables sur le front.

Ce type d’intégration, s' il est toujours possible techniquement, implique de mettre en place des solutions “custom” et/ou pas forcément supportées par le PSP et donc pouvant poser des soucis de sécurité et de maintenabilité (montée de version).

Dans tous les cas, cela limite considérablement le choix du PSP pour un client puisque les seuls PSP qui proposent cette implémentation sont ceux édités par Magento (Braintree, Adobe Payment) et Adyen.

EN CONCLUSION

En l’état, et même si l’approche headless prend tout son sens dans des contextes de sites web multimarques (comme le montre notre mise en place avec la solution Wordpress),  la mise en place d’une solution headless avec Magento Community pose question.

Si cette mise en place n’est pas impossible, elle est à la fois risquée, complexe et pose des questions de pérennité et de coûts.

En alternative, l’approche Zento est plutôt de s’orienter sur une mise en œuvre “classique” (Qui dit classique, ne veut pas dire vieux) sur la base, notamment du template Hyvä.

N’hésitez pas à contacter nos experts pour en savoir plus sur ces questions.

Besoin de plus d'infos ?

Ze News : votre dose hebdo d’actu digital #3

Découvrez l'actu tech et digitale de la semaine : investissements d'Amazon dans Anthropic, Black Friday, chi

Ze news : votre dose hebdo d’actu digitale & eCommerce #2

Un aperçu des points intéressants de la tech et du digital que nous avons vu cette semaine.

Comment créer une première impression mémorable avec un design unique ?

Les utilisateurs jugent un site en quelques secondes : un design de qualité capte leur attention...