User Tools

Site Tools


private:jb_shop:home

Projet de boutique en ligne pour JB

Principe

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.

Modèle économique

Auto-renouvellement ou non ?

  • JB : Un panier par défaut peut être proposé et validé dans le cas ou les personnes n'auraient rien modifié pendant la semaine
  • Etienne : Je suis pas sur d'avoir compris du coup, c'est sur un mode un panier par semaine ou des commandes ponctuelles ?
  • JB : les 2, et les points ont une durée de validité.
  • Etienne : à priori OK, il faut juste un moyen de marquer le panier comme “régulier” avec une date et un lieu de livraison, c'est plus compliqué vu qu'on a plus juste un solde de points, mais pas infaisable … Pour la livraison régulière les gens donnent un jour de la semaine ? Ça peut être tous les 15 jours ?
  • JB : de base un / semaine, jour fixe.

Livraison

  • JB : J’ai oublié les frais de livraisons qui pourront être de différents montant en fonction du nombre de panier livré genre 5 euros si moins de 3 paniers, et gratuit au delà de dix paniers par points de livraison, pi j’en profite car je crois que j’ai oublié de te le dir aussi, les gens choisissent leur points de livraisons, sachant qu’il sera lié au compte client, j’explique : j’ai un point de livraison chez orange : seul les ouvriers de chez orange peuvent être livré la ba. Même chose pour les paniers livré a idéa 35 par contre j’ai un point de livraison dans un magasin a Saint-Erblon qui est ouvert a tous.
  • Etienne : Je m'attendais à ce genre de bordel complexe de ta part … !!!!Les gens peuvent ajouter des lieux de livraison ? En faire la demande ? C'est toi qui les choisis ?!!!!

Réduction de fidélité

Un pourcentage fixe paramétrable. !!!!Sur quel critère ? C'est toi qui marque les gens comme “fidèles” ?!!!!

Contexte technique / prérequis / limitations

Contexte technique

  • PHP / MySQL ;
  • Hébergement mutualisé, faire attention à la charge ;
  • AJAX cosmétique (sauf admin éventuellement) ;
  • Dev / Qualif / PréProd sur YS, Prod OVH

Elements arrêtés

  • La monnaie virtuelle a un cours de 10 points par euro ;

Réflexions

  • Nom de domaine ;
  • Nom pour la monnaie virtuelle cohérent ;
  • Les quantités sont des chiffres ronds ;
  • La liste des produits est disponible publiquement ;
  • Il faut des pages dont le contenu est éditable (accueil, aide, autres …) ;
  • Charte graphique, ébauche :

layout.svg

Opérations externes

  • Domaine / hébergement / certificat ?;
  • Déclaration CNIL (régime de dispense ?)

Cahier des charges

On distingue plusieurs grandes fonctionnalitées :

  • Inscription et authentification des utilisateurs ;
  • Gestion des produits (admin );
  • Gestion des paniers de base (admin) ;
  • Visualisation du compte client (CNIL) ;
  • Composition du panier et “paiement” ;
  • Impressions des étiquettes / gestion des livraisons (admin) ;
  • Statistiques.

Inscription et authentification des utilisateurs

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 :

  • Contraintes sur le mot de passe avec lettres min/maj, chiffres et symboles, sauf si passphrase ;
  • SSL (https) : http://www.startssl.com fait du 0€ fiable (DL) mais au nom de personne physique (pas au nom de l'entreprise, pas grave puisque entreprise unipersonnelle !).

Gestion des produits (admin)

Ajouts / suppression de produits. Les produits sont définis comme suit :

  • Nom du produit ;
  • Blabla ?
  • prix ?
  • Photo ?
  • Quantité disponible ;
  • Classement par familles ? : pas nécessaire car pas des centaines de produits à la fois, il suffit de pouvoir rechercher.

Gestion des paniers de base (admin)

Composition sur le même modèle que les paniers clients. Possibilité de marquer un panier comme actif.

Visualisation du compte client (CNIL)

Modification des infos, consultation du solde de points avec visu de nb de paniers ok et jusqu’à quand.

Composition du panier et "paiement"

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.

Impressions des étiquettes / gestion des livraisons (admin)

Edition d'un pdf pour des grilles d'étiquettes définies (taille de grille) avec infos de livraison.

Marquage des livraisons comme effectuées.

Statistiques

Quantitées, rentrées d'argent … Par semaines / mois / an ?

Technique

Structure BDD

Table des utilisateurs

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 des lots de points

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 des produits

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.

Tables des paniers de base

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é

Tables des panniers

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é
private/jb_shop/home.txt · Last modified: 2022/06/30 21:13 by 127.0.0.1