Drupal Commerce sur Drupal 8 : quid de la version 2.0

Jeudi 19 novembre 2015, la première version stable de Drupal 8 était publiée. Et avec cette publication nombreuses sont les attentes concernant la solution e-commerce de Drupal, Drupal Commerce. Retour sur la conception de la version 2.0 et annonce de publication.

Jeudi 19 novembre 2015
La première version stable de Drupal 8 était publiée. Après plusieurs années d’efforts, la communauté de développeurs Drupal (+ de 3 000 développeurs) s’est empressée de fêter cette publication.Une version enrichie mais surtout repensée, avec 10 ans d’expérience, le CMS a suivi de fortes évolutions et a su s’enrichir de composants extérieurs (Symfony 2 : HttpFoundation, HttpKernel, Routing, EventDispatcher, DependencyInjection, ClassLoader, Twig).  Aujourd’hui ce principe d’externalisation de composants semble acquis par la communauté. C’est le même schéma qu’a suivi Drupal Commerce.

Drupal Commerce est un ensemble de composants s’appuyant sur le noyau de Drupal, “mécaniquement”, la nouvelle version de Drupal Commerce bénéficiera de Drupal 8, son approche “Mobile first”, le wysiwig embarqué, l’édition en direct ("inline éditing"), la simplification de l’internationalisation, la gestion avancée de la configuration, l’accessibilité... Mais, ce sont loin d’êtres les seules innovations de Drupal Commerce 2.0, qui a été aussi complètement repensé et propose de nouvelles fonctionnalités.

Vendredi 25 décembre
était publiée la première version alpha de Drupal Commerce 2.0, une version revue pour Drupal 8.

Retours sur Drupal Commerce

Petit rappel, Drupal Commerce, l’extension e-commerce de Drupal, avait vu le jour 6 mois après la sortie de  Drupal 7 lors de la DrupalCon de Londres (en septembre 2011). Basée sur les concepts nouveaux, intégrés à Drupal 7, Drupal Commerce 1.0 a très vite connu du succès au sein de la communauté dans un premier temps, puis plus généralement auprès des DSI du monde entier. On compte aujourd’hui près de 60 000 installations déclarées de Drupal Commerce. (Chiffres disponibles sur https://www.drupal.org/project/usage/commerce, ne présentant que les sites ayant activé la fonctionnalité de mise à jour des statistiques).

Le succès de Drupal Commerce pour Drupal 7 est principalement lié à deux facteurs. Le premier est la combinaison d’un CMS complet, s’appuyant sur la mécanique puissante de Drupal pour mettre à disposition des fonctionnalités e-commerce. La mise en place logique de composants forts de Drupal pour intégrer les notions de prix, produits et commandes, utilisant des entités (entities), intégrant les pages de panier, de liste de produits en vues (views) ainsi que les règles métier avec des règles systèmes (rules) : Drupal Commerce 1.0 avait su s’appuyer sur ces outils puissants pour proposer la seule architecture logicielle permettant de coupler sur un back-office, une seule base de données, un équilibre entre contenus et e-commerce.

Drupal Commerce s’est d’abord imposé sur le marché grâce à son approche marketing-e-commerce. Une approche mêlant contenus et produits, où la frontière entre produits du catalogue et contenus n’est plus un pré-requis, mais où les choix d’implémentations sont les résultats de décisions marketing et non plus de contraintes techniques.
Le second facteur clé de succès, est celui du framework. Une approche extrêmement générique, qui a très clairement contribué à populariser Drupal Commerce sur les cas e-commerce les plus atypiques.  A l’inverse d’autres solutions e-commerce, Drupal Commerce ne propose pas une unique architecture pré conçue, mais offre la possibilité de s’étendre en fonction de problématiques spécifiques, de se connecter à de nombreux systèmes tiers, sans embarquer de lourdes dépendances entre les briques que composent un projet.

Drupal Commerce 2.0, à l’aube d’un nouveau souffle ?

Avec l’expérience des 4 dernières années de projets, les mainteneurs du coeur de Drupal Commerce ont pu prendre du recul. Et ont composé la liste des problématiques et difficultés rencontrées sur les cas clients rencontrés.
Des centaines de projets, tous différents, disposant de leurs propres règles métiers, propres contraintes techniques et fonctionnelles, ont permis de soulever les manques de l’implémentation originale de Drupal Commerce, à tous les niveaux : taxes, promotions, systèmes de paiements, gestion du panier et du tunnel…
L’analyse de cette enquête a permis de mettre en avant une problématique commune : ces points ne sont pas liés à Drupal à proprement parler, mais à des spécificités e-commerce, principalement dépendantes de règles régionalisées.

Il a été décidé d’extraire ces logiques dans des services externes pour simplifier le coeur de Drupal Commerce et offrir une meilleur maintenabilité au projet.
Quatre librairies PHP indépendantes ont été implémentées et ont servi de point de départ à la mise en place de la version 2 de Drupal Commerce, pour Drupal 8.

6 mois d’intégration, plus de 400 commits. Ce choix audacieux a permis d’ouvrir un peu plus les portes à la contribution et de partager avec un plus grand nombre les mêmes problématiques.Drupal Commerce 2.0 repose sur l’externalisation des règles métiers générales qui ont un impact non négligeable sur l’architecture de projets e-commerce. Ces règles ne sont pas spécifiques à Drupal Commerce, et la mise en place de ces librairies, toutes librement utilisables, offre une nouvelle approche communautaire de la solution.Ces règles répondent particulièrement bien aux problématiques de plus en plus répandues d’internationalisation, permettant de rendre Drupal Commerce compatible avec l’ensemble des configurations imaginables. Tout comme l’éco-système e-commerce est international, la solution e-commerce de Drupal se doit d’assurer une compatibilité la plus avancée pour l’ensemble des problématiques internationales.


La gestion des devises repose sur la maintenance de 200 langues pour 157 devises. La notion de zone a ainsi été créée, permettant de gérer des principes de regroupement de règles par zone géographique. Tout comme les règles sur les taxes et la structure des adresses ont été revues pour permettre une meilleure intégration de Drupal Commerce sur les règles internationales de l’e-commerce.

Permettant par exemple de répondre à ce type de problématique : un prix en français ne s’affiche pas de la même façon en France ou au Canada; Un service de livraison est disponible en zone euro uniquement. Mais aussi de prendre en compte les formats internationaux d’adresse et la gestion internationales des taxes (par exemple: saviez-vous qu’alors qu’en France une adresse commence par un numéro, puis une voie, un code postal, une ville et un pays… l’ordre est exactement le contraire en Chine ?).

Drupal Commerce 2.0 aura la flexibilité pour implémenter ces contraintes partout dans le monde nativement.
Drupal Commerce 2.x bénéficie aussi des avancées proposées par Drupal 8. Centrée sur l’expérience utilisateur, Drupal 8 propose une interface de gestion plus claire et accessible.
Cette même réflexion a été appliquée à Drupal Commerce, pour mettre en place une architecture plus naturelle, offrant aux commerçants, comme aux utilisateurs, une approche fluide mais aussi étendue.

Quelques autres nouveautés

Outre l’intégration de librairies externes permettant de gérer des cas de figures bien plus divers qu’en version 1.0, Drupal Commerce 2.0 apporte aussi une refonte de l’organisation de ses produits. Le principe de variation intégré dans la version 1 est enrichi. Cette restructuration conceptuelle des produits offre une meilleure expérience aux commerçants, utilisant leur platforme d'e-commerce, en offrant la même qualité de navigation qu’aux utilisateurs, cliente du site e-commerce.

La présentation du prix des produits en est donc revue et étendue. Les librairies nouvellement intégrées permettent de présenter un même prix sous diverses devises et langues, adaptant ainsi naturellement les fonctionnalités multilingue et d’internationalisation à Drupal Commerce. La gestion des commandes a aussi été revue, permettant de répondre au plus grand nombre de problématiques : livraisons multiples, principe de place du marché (marketplace), paiement à la réception de la livraison...

Chaque projet dispose de ses propres règles

Drupal Commerce 2.x maintient une extrême flexibilité d’architecture de projet, tout en proposant une gestion inédite et facilitée. Outre les produits dont la conception est libre, les lignes de commandes également disposent de cette flexibilité.

A la lueur de la sortie de Drupal 8, Drupal Commerce 2.0 est en cours de finalisation, mais présente déjà tous les signes d’une version prometteuse, ayant acquis de l’expérience et ayant su se mettre en question. Drupal Commerce 2.0 s’annonce déjà comme une version majeure profondément tournée vers des problématiques d’internationalisation e-commerce.Quant au calendrier, si les briques indispensables aux fondations de la version 2 de commerce ont été communiquées, une version alpha vient d’être publiée, permettant aux plus impatients de tester les nouvelles fonctionnalités. A noter qu’en plus de ce cadeau de Noël, une version complète est promise pour le premier trimestre 2016 !
(source : https://drupalcommerce.org/blog)