Comment puis-je définir l'unité B2B dans la session. J'ai une classe de façade qui implémente la logique pour définir les unités dans la session (ex. Quand un utilisateur se connecte à la vitrine, il me donne ses unités et définit ces unités dans la session). Voici la méthode que j'utilise dans la classe personnalisée qui s'étend à DefaultCustomerFacade.class.
@Override
public void loginSuccess(){
Set<B2BUnitModel> allUserGroupsForUser = getUserService().getAllUserGroupsForUser(getCurrentUser(), B2BUnitModel.class);
List<String> b2bunitIds = allUserGroupsForUser.stream()
.map(B2BUnitModel::getName)
.collect(Collectors.toList());
if(!allUserGroupsForUser.isEmpty()) {
getSessionService().setAttribute("availableB2BUnits", b2bunitIds);
}
super.loginSuccess();
}
Ensuite, dans le storefront, j'ai montré dans la balise select en jsp, une liste déroulante avec ces unités. Ok, donc j'ai maintenant un attribut avec ces unités qui est dans la session et je veux que lorsque je clique pour une certaine unité B2B, cette unité soit définie dans la session. Je pense que je devrais faire un contrôleur pour implémenter la logique (définir l'unité actuelle dans la session) et dans un fichier js pour faire un appel ajax avec une méthode onChange, ou une api ajax, mais je ne sais pas comment faire cela. Quelqu'un peut-il m'aider, je suis nouveau dans hybris et je serai heureux si quelqu'un m'aide.