mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-11 04:19:25 +00:00
Rename makecommand to checkout
This commit is contained in:
@ -32,48 +32,39 @@ susnommés afin de comprendre comment celui-ci marche.
|
||||
|
||||
Cette application contient les vues suivantes :
|
||||
|
||||
- `eboutic_main` (GET) : la vue retournant la page principale de la boutique en ligne.
|
||||
- `EbouticMainView` (GET/POST) : la vue retournant la page principale de la boutique en ligne.
|
||||
Cette vue effectue un filtrage des produits à montrer à l'utilisateur en
|
||||
fonction de ce qu'il a le droit d'acheter.
|
||||
Si cette vue est appelée lors d'une redirection parce qu'une erreur
|
||||
est survenue au cours de la navigation sur la boutique, il est possible
|
||||
de donner les messages d'erreur à donner à l'utilisateur dans la session
|
||||
avec la clef ``"errors"``.
|
||||
Elle est en charge de récupérer le formulaire de création d'un panier et
|
||||
redirige alors vers la vue de checkout.
|
||||
- ``payment_result`` (GET) : retourne une page assez simple disant à l'utilisateur
|
||||
si son paiement a échoué ou réussi. Cette vue est appelée par redirection
|
||||
lorsque l'utilisateur paye son panier avec son argent du compte AE.
|
||||
- ``EbouticCommand`` (POST) : traite la soumission d'un panier par l'utilisateur.
|
||||
Lors de l'appel de cette vue, la requête doit contenir un cookie avec l'état
|
||||
du panier à valider. Ce panier doit strictement être de la forme :
|
||||
```
|
||||
[
|
||||
{"id": <int>, "name": <str>, "quantity": <int>, "unit_price": <float>},
|
||||
{"id": <int>, "name": <str>, "quantity": <int>, "unit_price": <float>},
|
||||
<etc.>
|
||||
]
|
||||
```
|
||||
Si le panier est mal formaté ou contient des valeurs invalides,
|
||||
une redirection est faite vers `eboutic_main`.
|
||||
- ``pay_with_sith`` (POST) : paie le panier avec l'argent présent sur le compte
|
||||
- ``EbouticCheckout`` (GET/POST) : Page récapitulant le contenu d'un panier.
|
||||
Permet de sélectionner le moyen de paiement et de mettre à jour ses coordonnées
|
||||
de paiement par carte bancaire.
|
||||
- ``PayWithSith`` (POST) : paie le panier avec l'argent présent sur le compte
|
||||
AE. Redirige vers `payment_result`.
|
||||
- ``ETransactionAutoAnswer`` (GET) : vue destinée à communiquer avec le service
|
||||
de paiement bancaire pour valider ou non le paiement de l'utilisateur.
|
||||
- ``BillingInfoFormFragment`` (GET/POST) : vue destinée à gérer les informations de paiement de l'utilisateur courant.
|
||||
|
||||
# Les templates
|
||||
|
||||
- ``eboutic_payment_result.jinja`` : très court template contenant juste
|
||||
un message pour dire à l'utilisateur si son achat s'est bien déroulé.
|
||||
Retourné par la vue ``payment_result``.
|
||||
- ``eboutic_makecommand.jinja`` : template contenant un résumé du panier et deux
|
||||
- ``eboutic_checkout.jinja`` : template contenant un résumé du panier et deux
|
||||
boutons, un pour payer avec le site AE et l'autre pour payer par carte bancaire.
|
||||
Retourné par la vue ``EbouticCommand``
|
||||
Retourné par la vue ``EbouticCheckout``
|
||||
- ``eboutic_billing_info.jinja`` : formulaire de modification des coordonnées bancaires.
|
||||
Elle permet également de mettre à jour ses coordonnées de paiement
|
||||
- ``eboutic_main.jinja`` : le plus gros template de cette application. Contient
|
||||
une interface pour que l'utilisateur puisse consulter les produits et remplir
|
||||
son panier. Les opérations de remplissage du panier se font entièrement côté client.
|
||||
À chaque clic pour ajouter ou retirer un élément du panier, le script JS
|
||||
(AlpineJS, plus précisément) édite en même temps un cookie.
|
||||
Au moment de la validation du panier, ce cookie est envoyé au serveur pour
|
||||
vérifier que la commande est valide et payer.
|
||||
(AlpineJS, plus précisément) édite en même temps le localStorage du navigateur.
|
||||
Cette vue fabrique dynamiquement un formulaire qui sera soumis au serveur.
|
||||
|
||||
# Les modèles
|
||||
|
||||
|
Reference in New Issue
Block a user