Les utilisateurs se voient crédités d'un nombre donné de points qu'ils achètent au préalable. Des quantités de produits sont mises à disposition. Les utilisateurs “achètent” des produits avec leur points en composant un panier, des paniers de base peuvent être imposés.
Un pourcentage fixe paramétrable. !!!!Sur quel critère ? C'est toi qui marque les gens comme “fidèles” ?!!!!
layout.svg
On distingue plusieurs grandes fonctionnalitées :
Les inscriptions doivent être confirmées et/ou validées.
La confirmation peut se faire par un challenge email, avec un lien de confirmation cliquable.
La validation se fait par acceptation de l'inscription depuis l'espace admin par la suite (opt-out).
La personne rentre ses infos. Un challenge email lui est envoyé. Les demandes sont listées avec acceptation/rejet (auto au bout de N jours) et liste de lieux de distrib proposés (plus opt d'en ajouter). Un mail est envoyé avec acceptation et lien vers profil.
L'authentification peut se faire par une classique paire email/mot de passe mais la solidité du mot de passe et du transport doivent être éprouvées :
Ajouts / suppression de produits. Les produits sont définis comme suit :
Composition sur le même modèle que les paniers clients. Possibilité de marquer un panier comme actif.
Modification des infos, consultation du solde de points avec visu de nb de paniers ok et jusqu’à quand.
Vue “live” du solde restant et des disponibilités produit, avec alerte si un produit passe en rupture au cours de la composition.
Validation de la commande en 2 étapes (CNIL) avec champ pour un petit mot.
Edition d'un pdf pour des grilles d'étiquettes définies (taille de grille) avec infos de livraison.
Marquage des livraisons comme effectuées.
Quantitées, rentrées d'argent … Par semaines / mois / an ?
Table : users
Champ | Type | Relation | Description |
---|---|---|---|
user_id | USint | many carts.user_id many vouchers.user_id | No utilisateur |
user_name | varchar(64) | Nom | |
user_email | varchar(128) | ||
user_pwh | varchar(40) | Hash mot de passe avec 2 salt | |
user_address | Text | ||
user_zipcode | varchar(5) | Code postal | |
user_town | varchar(32) | Ville | |
user_telephones | varchar(43) | Séparés par des virgules, max 4 |
Table : vouchers
Champ | Type | Relation | Description |
---|---|---|---|
voucher_id | UMint | No de lot de points | |
user_id | USint | one users.user_id | No utilisateur |
voucher_points | USint | Nombre de points dans le lot | |
voucher_remaining_points | USint | ||
voucher_expires | DateTime | Date d'expiration |
Table : products
Champ | Type | Relation | Description |
---|---|---|---|
product_id | USint | many carts_products.product_id many basecarts_products.product_id | No produit |
product_name | varchar(32) | Nom produit | |
product_points | USint | Cout | |
product_saleunit | varchar(32) | UDV | |
product_minimum_quantity | USint | Contraintes sur | |
product_maximum_quantity | USint | les paniers | |
product_description | Text |
Table : products_stocks
Champ | Type | Relation | Description |
---|---|---|---|
product_stock_id | UMint | No lot produit | |
product_id | USint | one products.product_id | No produit |
user_id | USint | one user.user_id | No producteur |
product_stock_quantity | UMint | Quantité | |
product_stock_remaining_quantity | UMint |
Une photo pourrais être attachée en utilisant le product_id.
Table : basecarts
Champ | Type | Relation | Description |
---|---|---|---|
basecart_id | UTint | many basecarts_products.basecart_id | No pannier |
basecart_name | varchar(32) | Nom | |
basecart_enabled | UTint | Panier actif | |
basecart_default | UTint | Panier par défaut |
Table : basecarts_products
Champ | Type | Relation | Description |
---|---|---|---|
basecart_id | UTint | one basecarts.basecart_id | No pannier de base |
product_id | USint | one products.product_id | No produit |
basecarts_products_quantity | USint | Quantité |
Table : carts
Champ | Type | Relation | Description |
---|---|---|---|
cart_id | UMint | many carts_products.cart_id | No pannier |
user_id | USint | one users.user_id | No utilisateur |
cart_status | Enum(current, submitted, handled, dispatched) | Satut du pannier : current : pannier en cours de composition submitted : commande passée handled : préparé dispatched : distribué |
Table : carts_products
Champ | Type | Relation | Description |
---|---|---|---|
cart_id | UMint | one carts.cart_id | No pannier |
product_id | USint | one products.product_id | No produit |
cart_product_quantity | USint | Quantité |