Dans cet article, nous vous proposons de vous familiariser avec les concepts clés de développement de la suite e-commerce SAP Hybris.
Le référentiel
La suite SAP Hybris est basée sur JAVA / Spring mais possède son propre référenciel appelé Type System. On ne parle plus de classes et d’objets mais de types et d’items.
Un item est une instance de type.

http://help.hybris.com
Le modèle est défini dans un fichier xml et les classes JAVA associées sont générées par la commande ANT. Par exemple, la définition d’un item Product va générer la classe ProductModel.java.
Exemple de définition
Le cycle de vie d’une requête client
Hybris suit un modèle standard où la séparation des responsabilités est respectée.
Chaque action client va être interceptée par un contrôleur. Le contrôleur va manipuler des objets de transfert de données ( les Data Transfer Object ) pour communiquer avec les façades. La façade va ensuite faire appel à différents services qui vont eux faire appel aux Data Access Object pour récupérer les données stockées en base de données et appliquer la logique métier.
Les données résultant du traitement sont renvoyées à la façade qui va les transformer en DTO en utilisant un convertisseur qui contient une liste de populateurs dont le rôle et de prendre les données du modèle et de remplir les DTO avec seulement les données nécessairse pour l'affiche sur la page web. Les DTO remplis, la façade les retourne au contrôleur qui est chargé de rendre la page du site web.
Définitions et fichiers XML
- Le modèle est défini dans des fichiers *-items.xml. Chaque item défini va générer la classe *Model associée. Il faudra lancer une commande ant et faire une mise à jour du système en backoffice.
- Les DTO ou tout autre POJO sont définis dans des fichiers *-beans.xml. La commande ant suffira pour générer les classes.
- Les façades, les services et les DAO sont définis dans des fichiers *-spring.xml. Encore une fois il faudra lancer la commande ant.
Les impex
L'API du système impex permet un mécanisme d'import et d'export. Elle permet d’insérer, modifier ou supprimer n'importe quel item et donc d'agir sur les informations en base de données.
L'API peut être utilisé directement dans le code, par fichier d'import ou d'export ou encore en backoffice dans la console d'import / export.
Dans un impex, on peut déclarer plusieurs items à mettre à jour, chaque type d'item devant avoir une ligne d'entête. L'ordre de déclarations des items n'est pas important, même pour les objets liés car le fichier impex sera traité deux fois pour résoudre les dépendances.
Si lors de l'import d'un champ, il faut appliquer une logique spécifique, on peut implémenter un translator qui va faire le traitement sur la donnée.
Le Javascript
Le javascript dans Hybris est du javascript standard mais il est intéressant de remarquer la fonction d'autoload et l'utilisation des espaces de noms.
Chaque fichier javascript doit définir une variable _autoload et chaque fonction remplissant les conditions seront appelé une fois le DOM de la page web chargée.
L'architecture
Tout les développements spécifiques à votre projet vont être isolés du framework Hybris. Pour cela, voici une proposition de découpage des paquets avec les types de classes principales
- Netapsyscore
- Interceptors
- Event Listener
- Attribute handler
- Netapsysstorefront
- controlleur
- Validator
- Netapsysfacades
- populator
- converter
- email context
- DTO
- Netapsyscommerceservices
- services
- strategies
- DAO
- Netapsysinitialdata
- Impex
Conclusion
Voici une courte introduction à la suite SAP Hybris qui a pour but de vous donner les clés pour bien démarrer vos futurs développements.
Pour aller plus loin, il faut garder à l'esprit les différents design pattern inhérents à la conception logicielle, et observer et comprendre l'architecture logiciel déjà présente pour faire évoluer la solution en préservant le standard.