Store

Présentation

En raison de la crise sanitaire, beaucoup de magasins ou de commerçants ont recours de manière exceptionnelle à la vente à emporter.
Beaucoup d'entre eux n'ont pas à leur disposition une application Web leur permettant de gérer cette activité.

L'objectif de l'application décrite ci-dessous est de répondre à ce nouveau besoin :

  • Pour le client : lui permettre de préparer ses commandes en ligne et de convenir d'un moment pour venir les chercher (app full-stack).
  • Pour le commerçant : gérer la préparation des commandes et les retraits (app EmberJS).

Données

Produits

Sections

Les produits sont rangés par section, équivalent d'un rayon de magasin. Chaque section est décrite par un nom et une description. Elle permet de présenter plusieurs produits.
Un produit (avec nom, commentaire, image d'illustration, prix, promotion) ne peut appartenir qu'à une seule section.

Produits associés

Chaque produit peut avoir des produits associés, qui apparaîtront dans la zone “produits associés” lorsque le visiteur sera sur la fiche du produit.

Packs

Certains produits sont des lots (packs) composés d'autres produits. Il s'agit dans ce cas de promotions.

  • La promotion est dans ce cas calculée en faisant la différence entre le prix du lot et la somme des prix des produits inclus dans le lot.
  • Le prix du produit tient toujours compte de la promotion, y compris dans le cas où la promotion est calculée.

Les packs feront automatiquement partie des produits associés des produits qu'ils contiennent.

Commandes

Clients

Les clients sont des utilisateurs (User) ayant un nom, une adresse email, un mot de passe

Employés

Les employés du magasin possédent les mêmes caractéristiques que les clients.

Commandes

Une commande, dont on retient la date de création (automatiquement) ne correspond qu'à un seul client.

Une commande contient des produits, commandés en une certaine quantité.

Le montant total de la commande (amount) et le nombre total de produits commandés (itemsNumber) seront calculés automatiquement.

Chaque commande sera retirée sur une plage (timeSlot) choisie par le client.

  • Le timeSlot correspond à une date/heure précise. Il n'est pas sélectionnable par le client s'il est plein (full ⇒ dans ce cas tous les employés sont déjà occupés à cet instant) ou expiré (date-1/2 journée dépassée).
  • L'affectation d'un employé sur la préparation d'une commande correspondant à un timeSlot se fait automatiquement à la création de commande.

Lors de la préparation d'une commande, l'employé affecté à sa préparation marque chaque élément de la commande comme 'prepared'.

  • Le montant à payer (toPay) et le nombre d'items manquant (missingItems) se mettront à jour automatiquement.

Lors de son retrait, la commande doit afficher automatiquement :

  • Le montant total à payer par le client (toPay) (basé sur les produits préparés)
  • Le nombre de produits préparés dans la commande, et le nombre d'items manquants

Paniers

Chaque client peut créer des paniers qui contiennent des produits, en certaines quantités (de la même manière que la commande).

Un panier ne correspond qu'à un seul client, il est décrit par un nom, et sa date de création (automatique).

Lors de la création d'un compte client, un panier vide nommé (Mis de côté) est automatiquement créé pour lui.

MCD de la base de données

MPD de la base :

A faire : Rétro-concevoir le MCD à partir du MCD

Fonctionnalités

La partie back-end doit permettre au client de réaliser ses commandes et de gérer son compte (implémenté par une autre équipe). La partie Intranet développée en SPA front-end doit permettre au magasin de gérer son store, et aux employés de préparer les commandes des clients.

slam4/store.txt · Dernière modification: 2021/03/23 16:44 par jcheron
GNU Free Documentation License 1.3
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0