2010-11-21 5 views
3

Dites que j'ai un ordinateur portable pour 600.00. Dire que je le change à 650,00 $. Comment les chariots d'achats gèrent-ils cela? Comme ils stockent le prix dans le panier ou l'article? Comment s'assurent-ils qu'ils obtiennent le prix qu'ils veulent mais ne facturent pas au client le nouveau changement sans leur demander? Ou les stocke-t-on dans les deux? Je pensais que je pourrais peut-être stocker dans les deux. Donc, si le prix actuel est supérieur au prix du panier pour un article, ne le retirez pas/facturez-le de son panier. Puis après, dites-leur ce qui a été facturé/envoyez un reçu pour les articles qui n'ont pas changé qui ont été facturés (disons qu'ils avaient plus d'un article) et retirez-le du panier. Pour les articles qui ont changé, dites quelque chose comme "Les articles laissés dans le panier en raison du changement de prix, s'il vous plaît vérifiez si vous voulez toujours acheter les articles au nouveau prix." Alors laissez les articles qui ont changé dans le panier mais mettez à jour le prix dans le panier.panier changement de prix

C'est mon idée sur la façon de le faire. Je ne pense pas que la langue devrait avoir de l'importance. Supposons que ce soit plus d'une question de type logique. Est-ce que la plupart des caddies le font de cette façon ou y a-t-il un meilleur moyen?

Répondre

2

Les paniers d'achat simples ne sont que des rangées de produits qui sont entretenus grâce à des sessions et des cookies. Vous pouvez faire ce que vous voulez. Assurez-vous simplement que les utilisateurs ne peuvent pas faire ce qu'ils veulent, par exemple modifier les prix via l'URL. Mais surtout, il est très, très, très facile pour l'utilisateur de passer à la caisse.

La plupart des développeurs vont créer un tableau avec des objets de produit, donc si des changements sont apportés à un produit, les paniers d'achat refléteront cette modification. Cependant, si vous changez vos prix alors évident vous aurez un problème si un utilisateur clique dessus sur le prix mais alors vous le changez et les usages ne voient pas ce changement jusqu'à après qu'ils aient payé ou deviennent confus pourquoi le prix a monté l'expérience d'achat moyenne . En ce qui concerne la gestion de l'élément de campagne si des utilisateurs se connectent avant de pouvoir ajouter des éléments à un panier, vous n'avez pas besoin de créer un cookie/une session pour stocker le tableau des éléments de campagne. checkout et les éléments de campagne sont enregistrés avec leurs informations pour référence ultérieure.

Dans ce cas, vous allez créer un élément de campagne associé à l'objet afin que vous puissiez obtenir toutes les informations sur les produits tout en enregistrant le prix dans ce modèle LineItem, donc si vous mettez à jour votre prix n'affectera pas l'expérience d'achat des acheteurs. Et si vous voulez que les utilisateurs paient des prix plus élevés parce que vous changez d'avis et que vous voulez utiliser le modèle d'article, vous pouvez faire ce qui est prévu au dernier paragraphe et vérifier le prix juste avant que l'utilisateur ne décide de payer. Si c'est différent alors laissez-les non que ce produit est maintenant acheté et n'oubliez pas de vous excuser.

2

La réponse courte, tout dépend de la façon dont il a été codé.

Je suppose que la transaction dont vous parlez est en cours. Si le prix change après que l'utilisateur a terminé la transaction, il serait considéré comme une "mauvaise chose" dans les termes du service client, et pourrait être illégal aux yeux de votre processeur de paiement.

J'aime votre idée de comparer le prix dans le panier par rapport au prix le plus récent. Cependant, si l'utilisateur peut changer la valeur du prix d'un article dans la demande pour voir le panier, cela pourrait causer beaucoup de problèmes avec ce qui leur est facturé. Par exemple, si l'utilisateur a changé le prix de l'ordinateur portable à 1200 $, et dans votre code vous avez réduit la valeur de leur panier par la différence, ils pourraient obtenir cet ordinateur portable pour 0 $, ce qui serait une "mauvaise chose".

1200 $ - Entrées 600 $ - Prix actuel - 600 $ - Ajustement par rapport au prix $ 0 - client prix est facturé? Un autre exemple serait si vous faites le prix de l'article une valeur que l'utilisateur peut éditer, et ils sont un utilisateur malveillant, ils pourraient potentiellement changer le prix à - $ 600.00, ce qui serait encore une "mauvaise chose" . Le moyen le plus sûr de le faire serait de stocker l'identifiant de l'article dans le panier dans le lien pour voir le panier, puis de récupérer/mettre à jour le prix de l'article dans le panier chaque fois que les propriétés (total , etc) du panier sont demandés. De cette façon, si un utilisateur malintentionné a essayé le truc plus ou moins, il recevrait juste un message que le prix a été mis à jour au "prix actuel".

Le site OWASP dispose de certains outils de sécurité open source qui peuvent vous aider à tester votre code dans les situations où l'utilisateur essaie de placer un panier. Leur adresse est http://www.owasp.org

0

Si le panier contient simplement une référence à l'article (tel que l'ID/clé primaire), vous n'avez pas besoin de stocker le prix à deux endroits. Vous chargez simplement les objets du panier lorsque vous en avez besoin, et les prix reflètent automatiquement le changement. Dans la plupart des cas, les changements seront assez rares pour que ce ne soit pas une grosse affaire du point de vue de l'utilisateur.