Je parcourais les posts sur Play! framework
et je suis tombé sur des messages qui discutaient ecommerce
Comme je suis un débutant dans les deux domaines, j'ai pensé à faire un exercice. J'ai écrit quelques cas d'utilisation et quelques exigences comme ci-dessous. J'aimerais avoir votre opinion à ce sujet, en espérant que cela puisse élargir ma connaissance technique.
Quelques exigences pour un panier d'achat sur une page web :
L'utilisateur peut ajouter des articles au panier même sans se connecter au site.
2. l'utilisateur doit se connecter après avoir cliqué sur checkout link
.
La page des détails de l'article contiendra une icône addtocart
uniquement si cet article n'est pas déjà dans le panier.
La page des détails de l'article contiendra un message de type minicartview
,montrant les noms des articles dans le panier et le prix total.
J'ai codé le ShoppingCart
Il peut être récupéré à partir de la base de données en utilisant son nom. User
.
@Entity
class ShoppingCart{
...
@OneToOne
public User user;
}
Quelques scénarios possibles que j'ai envisagés.
L'utilisateur est déjà connecté, lorsqu'il arrive sur la page des détails de l'article.
Cela semble facile, je peux récupérer le panier de la base de données, en utilisant l'utilisateur connecté.
User user = User.find("byEmail", Security.connected()).first();
cart = ShoppingCart.find("byUser",user);
...
2. aucun utilisateur n'est connecté actuellement.
C'est ce qui me dérange. Comment gérer cela ? Comment puis-je montrer au minicartview
ici sur Itemdetails
Où dois-je stocker le panier ? Le cache est volatile et n'est pas fiable. Comment dois-je stocker le panier autrement ? Je ne peux pas le stocker dans la base de données avant que l'utilisateur ne se connecte.
Si quelqu'un peut clarifier ce scénario, cela pourrait m'aider beaucoup