Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
J'essaie actuellement de réaliser un mini site type e-commerce. J'ai donc un panier auquel je peux ajouter des articles.
Je souhaiterais diminuer le nombre d'articles en stock chaque fois que j'ajoute cet article à mon panier. Si le client valide la commande, alors tout va bien, et s'il l'annule, je remets les stocks à jour.
Est-il possible de gerer cela grâce aux transactions, à l'aide de commit/rollback ?
J'ai essayer de le faire mais je me retrouve avec un probleme de serialisation puisque je ne peux stocker en session la transaction.
Je voudrais donc savoir comment vous me conseillerez de traiter le probleme, ou bien si c'est possible malgrès tout avec les transactions.
Je pourrais également parcourir mon tableau à l'annulation de la commande, et ré-augmenter les stocks de chaque article, mais est-ce le meilleur choix ?
Merci de vos réponses
Guillaume
Dernière modification par astec37 (26-02-2008 10:03:59)
Hors ligne
Je peux pas vraiment te répondre, mais voici une autre solution du MoOx le flegmard:
Moi sans chercher bien loin, et n'aimant pas me prendre la tête avec les bases de données, je sauvegarderais les paniers dans une table, et quand j'affiche les stocks sur les pages produits (car je suppose que la finalité et là: avoir le stock des produits à jour en directe) je prends compte les stocks produits moins les stocks enregistrés dans les paniers.
En plus ma solution t'ouvre un porte sur la sauvegarde des paniers pour les clients
Hors ligne
Merci de cette réponse Mr.MoOx. Ton approche est effectivement intéressante, malheureusement, je n'ai pas besoin de sauvegarder les panier (c'est un site factice), donc je pense que ça ferais plus de développement que nécessaire.
Je pense donc que si le client annule la commande, je parcourrais le panier et je ré-incrémenterais la quantité en base pour chaque article. Enfin, si personne n'y voit d'inconvénient ! (je veux dire par là, n'est-ce pas trop sale de procéder ainsi ?)
Bonne soirée
Hors ligne
Le problème que tu va rencontré, c'est que si le client "annule" sa commande (en fermant la fenêtre?) je vois mal comment tu va pouvoir t'assurer qu'il y'a "annulation". Tu comprends le soucis?
Alors que avec les panier en base tu peux plus controler les quantités étant donnée que tu aurais accès à tous les paniers en même temps (chose plus difficile avec les sessions) ce qui te permet de recalculer les bonnes quantités en directe.
Dans tous les cas je ne te conseille pas de décrémenté le stock réel car il sera dur de le réincrémenté!
PS: Je suppose que ton site "factice" est dév à l'occasion d'un projet d'étude. Tu a déjà pensé au problème correctement, et rien que ça c'est bien . A reporter dans le rapport !
Hors ligne
Effectivement, je n'avais pas pensé à la déconnexion "indirecte".
Je vais donc suivre tes conseils, passer par une table commande.
En tout cas merci beaucoup de ton aide
Guillaume
ps: bien vu pour le projet d'étude
Hors ligne