Boutique e-commerce : verrouillage panier ?

Boutique e-commerce : verrouillage panier ? - PHP - Programmation

Marsh Posté le 30-03-2010 à 16:40:06    

:hello:  Hello
 
Actuellement entrain de développer mon propre système de e-commerce en PHP/MySQL pour satisfaire des besoins très précis, je me retrouve confronté à une question concernant la gestion du panier : celui-ci doit-il être vérouillé ?
 
Si oui, à quelle étape ? Avant le choix du transporteur (dont le prix dépend du panier) ?  
 
Comment dévérouiller le panier si l'utilisateur stoppe le processus de commande sans cliquer forcément sur un bouton "Annuler" ?
 
Merci  :jap:


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 30-03-2010 à 16:40:06   

Reply

Marsh Posté le 30-03-2010 à 17:35:45    

Citation :

la gestion du panier : celui-ci doit-il être vérouillé ?

C'est mieux de décrémenter un compteur dès qu'un article est choisi, pour empêcher qu'un autre utilisateur le prenne si le compteur est devenu à zéro. Mais, ce n'est pas nécessaire, s'il peut y avoir un réapprovisionnement dans un délai pas trop long.

Citation :

Comment dévérouiller le panier si l'utilisateur stoppe le processus de commande sans cliquer forcément sur un bouton "Annuler" ?  

En utilisant un Timer, et si l'utilisateur appuie sur le bouton après le temps imparti, voir s'il est possible de reverrouiller le panier, et sinon, lui dire que la session a expiré et que l'article n'est plus disponible.
Ou bien en utilisant l'événement onBlur, mais je ne sais pas si c'est fiable.


Message édité par olivthill le 30-03-2010 à 17:39:20
Reply

Marsh Posté le 30-03-2010 à 17:41:35    

Je garde ton idée sous le coude ;)  
 
Cependant, si l'user au bout de quelques secondes sur la page récapitulative (par exemple) retourne sur la homepage, le panier sera toujours vérouillé ... je ne sais pas s'il existe un moyen fiable de vérifier (peut être du AJAX) si l'user est toujours entrain de valider sa commande ou pas ... ?
 
Edit : pour ce qui est du comptage du stock, je fonctionnerai quasiment pas sur du stock donc problème plus ou moins résolu, par contre, le verrou doit pouvoir faire en sorte que le client rajoute pas des articles après avoir déterminé le coût du transport.


Message édité par moon06 le 30-03-2010 à 17:44:10

---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 31-03-2010 à 09:19:01    

Tant que j'y suis, autre petite question : doit-on sur un site de e-commerce faire valider son adresse email (lien d'activation) à un nouvel inscrit ?  
 
Même dans le cas d'une inscription qui sert à passer la commande immédiatement ?


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 31-03-2010 à 11:30:23    

je crois que la loi française impose qu'il y ait un minimum de clics entre le choix d'un article et le paiement de la commande. Tu as donc de quoi faire valider l'adresse du client ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 31-03-2010 à 11:36:33    

Je me suis mal exprimé : je demandais si niveau sécurité ça ne pose pase de souci que le client puisse passer commande sans avoir confirmé son adresse email par un lien d'activation reçu par email au préalable ? :)


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 31-03-2010 à 15:19:52    

il faut que le client ait une trace de sa commande. si tu lui envoies le doc par courrier, juridiquement ça ne posera pas de pb (et t'as pas besoin de vérifier l'email).
Après  regarde ce que font les gros sites, ldlc, rueducommerce, materiel.net ... de mémoire je crois qu'ils demandent la conformation de création du compte.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 31-03-2010 à 15:38:43    

Le problème c'est plus si le client se plante d'email, ou arrive plus à accéder à sa boîte ... mais bon il suffit qu'il nous téléphone et on rectifie après quelques vérifs.
 
Pour le panier, j'ai eu une idée : pourquoi pas copier $_SESSION['monpanier'] dans $_SESSION['monpanier2'] au moment ou le client "valide" le panier ?
 
Du coup, plus possible pour le client, même s'il rajoute des produits à son panier, de modifier $_SESSION['panier2'] ... mais par contre, s'il revalide le panier, le problème revient ... sauf si panier2 est vérouillé, mais on revient au problème du départ càd quand vérouiller/dévérouille ...
 
 :pt1cable:  
 
Edit : je ferais bien des essais sur un site de ecommerce mais je veux pas trop risquer des soucis  :whistle:
 
Edit 2 : j'ai fait le test sur un Zen-Cart local : en chargant l'id de session dans un autre navigateur, je suis aussi authentifié sur le même compte, et je peux naviguer sur les deux en même temps sans que l'un déco l'autre.  
 
Par contre, si j'ai déjà validé les frais de port sur un navigateur et que depuis l'autre je rajoute un produit, lorsque je tente de valider ma commande, ça me renvoie sur la page de validation des frais de port ... donc c'est bien comme ça que je veux faire ... reste à savoir comment  :??:


Message édité par moon06 le 31-03-2010 à 15:57:43

---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 04-04-2010 à 10:48:03    

quel est ton modèle conceptuel ?


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 04-04-2010 à 11:25:39    

Euh ... c'est à dire ? Le schéma exact du fonctionnement panier / validation / paiement etc ... ?


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 04-04-2010 à 11:25:39   

Reply

Marsh Posté le 09-04-2010 à 16:16:31    

Bon, j'ai trouvé finalement différents moyens de gérer ces petits soucis, donc problème résolu :)
 
Du coup autre petite question : est-il nécessaire de passer à une fonction des variables globales ($_GET, $_POST, etc ...) en paramètres alors qu'elle peut les récupérer directement ?
 
Petit exemple :  
 

Code :
  1. page.php?variable=test
  2. function Ma_Fonction(){
  3.    print $_GET['variable'];
  4. }
  5. Ma_Fonction(); // affiche test


Message édité par moon06 le 09-04-2010 à 16:18:04

---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 25-04-2010 à 11:45:29    

[:moon06]


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 26-04-2010 à 13:11:59    

Je serais plutôt pour passer les variables globales en paramètre. Ca rend le code de la fonction plus indépendant du contexte -> meilleure séparation contrôleur/modèle ou contrôleur/vue.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 26-04-2010 à 13:55:42    

Et du coup, je passerais plutôt $_POST ou chaque variable séparément à ma fonction ?


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 26-04-2010 à 13:58:51    

oui. Eventuellement, tu peux te contenter d'un tableau associatif comme valeur à passer en paramètre, où chaque clé représente une variable. Ca évite d'avoir des prototypes de fonctions à rallonge et permet de rajouter d'autres paramètres i la fonction est amenée à évoluer.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 26-04-2010 à 13:59:42    

Bon, merci pour l'avis, je vais avancer comme ça ;)


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed