9
votes

Traiter avec deux personnes achètent un article unique dans une boutique en ligne en même temps

Je crée une simple boutique en ligne avec PHP intégrée à PayPal qui vend des articles uniques. Ce que je me demande, c'est comment les autres magasins traitent de multiples personnes qui tentent de passer par le processus de paiement avec le même article.

Ceci est mon projet de stratégie actuel:

  • Les articles ont trois types de statut: disponibles, en attente et vendus.
  • En tant qu'utilisateur se déplace vers la page de paiement PayPal, il vérifie l'état de tous les éléments du panier pour vous assurer qu'ils sont disponibles. Il définit également le statut de l'élément sur "en attente" jusqu'à ce qu'ils revenaient après le paiement de paiement ou une fois par temps (10 minutes? Je ne sais pas ce que cela devrait être).

    est cette pratique standard ou existe-t-il un moyen plus pratique que je devrais aller à ce sujet?

    Merci d'avance!


6 commentaires

C'est une question d'exigences commerciales et non de la programmation.


@Richard je suis en désaccord, il s'agit de la concurrence.


@Richard: Les exigences commerciales de la réunion sont une partie plutôt importante de la programmation, de l'OMI. Définitivement la programmation liée.


@TREB: Mais Définition des exigences commerciales est à l'extérieur de la portée. Et cela semble être plus important de définir les règles de l'entreprise que de les mettre en œuvre. IMHO Bien sûr.


@RICHARD: Je pense que cela tombe sous Conditions d'ingénierie , que je considère comme une programmation liée. Peut-être que notre désaccord découle d'une interprétation différente de programmation liée , à moi tout ce qui fait partie du cycle de vie du logiciel est lié à la programmation (une approche assez large, j'admettais).


@TREB: Je conviendrais d'accord qu'il existe une bonne affaire pour que les "exigences technique" soient sur le sujet. Mais je vois cela comme plus de définition de processus métier (par exemple, si l'entreprise était manuelle (non informatisée) la même question existerait). Cela appartient vraiment à la méta.


5 Réponses :


0
votes

woot.com est notoire pour ce problème, mais leur solution fonctionne bien. Après vérification des informations de paiement, l'utilisateur est porté à une page avec une petite quantité de texte en disant quelque chose comme «votre commande est intégrée, nous vérifions l'inventaire».

On dirait que l'API PayPal a un message "RefundTransaction", donc quelque chose comme ça pourrait ne pas être possible. Mais l'expérience utilisateur pourrait être gênante si vous allez sur le site Web PayPal, puis revenant sur votre site.


0 commentaires

2
votes

regarder Dell's UK Outlet . Lorsque quelqu'un ajoute un système à leur panier, il est tenu et non disponible pour d'autres clients. Si ce n'est pas acheté, l'article est supprimé du panier après 15 minutes d'inactivité et est ensuite disponible pour d'autres clients.


1 commentaires

Je n'aime pas vraiment cette solution car cela rend les produits inutilement indisponibles pour les clients potentiels disposés à payer



0
votes

Cela ressemble beaucoup à la réservation de billets de théâtre ou similaires en ligne et oui, la façon dont vous décrivez est généralement la façon dont cela fonctionne. À un moment donné, l'article est "réservé" dans le système et que le client termine la transaction ou l'élément est libéré après un certain temps pour que les autres achètent.

Bien sûr, à quel point vous réservez l'article (quand il est ajouté au panier, au point que vous les envoyez à payer, etc.) est à vous de choisir. Je m'attendrais à ce que ce soit dans le panier serait le meilleur choix que cela rend moins probable que quelqu'un construira un panier de choses que pour trouver la moitié de celle-ci n'est plus disponible à la caisse.


0 commentaires

1
votes

Il s'agit d'un problème assez courant avec des systèmes d'inventaire fixe tels que le lieu, le transport / la compagnie aérienne TIX, etc.

J'aime le modèle de la compagnie aérienne où une fois que vous obtenez la création de l'Itinérance souhaitée et cliquez sur Sélectionner, vous obtenez une page avec des informations passagers avec un message indiquant, siège en attente et que vous avez maintenant XX (10/15) minutes pour terminer l'achat. . Tout devient explicite à cette époque. Pour un autre élément unique / unique, je penserais un message sur n'importe quelle page, que l'utilisateur clique sur, affirmant que vous avez XX (MINS) restant pour terminer l'achat serait un grand motivateur pour les acheteurs "sur les bords" !


0 commentaires

1
votes

Je dirais que la première partie de votre stratégie est correcte - à mesure que vous passez à la page de paiement, signalez tous les produits comme «en attente»

Lorsque l'utilisateur a terminé le paiement, vous obtiendrez un publication de PayPal qui vous permettra de savoir si l'autorisation a été réussie ou non (et vous permettra également de vérifier le résultat du CSC / CVV2), et à ce stade que vous avez la possibilité d'accepter le paiement ou de le rejeter.

à la réception du post-pack, vous devez également vérifier si les éléments sont toujours en attente. S'ils ont expiré, vous pouvez rejeter le paiement et afficher un message 'Désolé - Timeout dépassé' ou Somesuch.

Cette méthode vous permet également de parcourir une période de délai d'expiration idéale si vous gardez une trace de la fréquence à laquelle les clients rencontrent le délai d'attente, vous pouvez donc prolonger le délai d'attente de (par exemple) 5 à 10 minutes si trop de temps s'ils sont chronométrés, ou raccourcissez-le si aucun n'achève.


0 commentaires