2010-02-18 5 views
6

Estoy creando una tienda en línea simple con PHP integrado con PayPal que vende artículos únicos. Lo que me pregunto es cómo otras tiendas tratan con varias personas que intentan pasar por el proceso de pago con el mismo artículo.Tratando con dos personas comprando un artículo único en una tienda en línea al mismo tiempo

Este es mi proyecto actual estrategia:

  • Los productos que tienen tres tipos de estado: disponible, en espera & vendido.
  • Cuando un usuario se mueve a la página de pago de PayPal, comprueba el estado de todos los artículos en el carro para asegurarse de que estén disponibles. También establece el estado del elemento en "en espera" hasta que vuelva una vez confirmado el pago o se agote (¿10 minutos? No estoy seguro de qué debería ser).

¿Es esta práctica estándar o hay una forma más práctica de hacerlo?

¡Gracias de antemano!

+0

Esta es una cuestión de requisitos comerciales, no de programación. – Richard

+9

@Richard No estoy de acuerdo, se trata de concurencia. – Justin

+3

@Richard: cumplir con los requisitos comerciales es una parte bastante importante de la programación, la OMI. Definitivamente relacionado a la programación. – Treb

Respuesta

0

Yo diría que la primera parte de su estrategia es correcta - como usted se mueve a la página de pago, la bandera de todos los productos como 'en espera'

Cuando el usuario ha terminado el pago, recibirá una devolución de datos de Paypal, que le permite saber si la autorización fue exitosa o no (y posiblemente también le permita verificar el resultado de CSC/CVV2), y en ese momento tiene la opción de aceptar el pago o rechazarlo.

Al recibir la devolución de datos también debe comprobar si los artículos están todavía en espera. Si han agotado el tiempo de espera, puede rechazar el pago y mostrar un mensaje "lo siento, se excedió el tiempo de espera" o algo así.

Este método también le permite calcular un período de tiempo de espera ideal si realiza un seguimiento de la frecuencia con la que los clientes alcanzan el tiempo de espera, por lo que puede extender el tiempo de espera de 5 a 10 minutos si hay demasiados tiempos de espera. o acortarlo si no hay tiempo de espera.

0

woot.com es notorio por este problema, pero su solución funciona bien. Una vez que se verifica la información de pago, se lleva al usuario a una página con una pequeña cantidad de texto que dice algo así como "su pedido está dentro, estamos verificando el inventario".

Parece que la API de paypal tiene un mensaje "RefundTransaction", por lo que algo así podría no ser posible. Pero la experiencia del usuario puede ser incómoda si va al sitio web de PayPal y vuelve a su sitio.

2

Eche un vistazo a Dell's UK outlet. Cuando alguien agrega un sistema a su cesta de la compra, se mantiene y no está disponible para otros clientes. Si no se compra, el artículo se retira de la cesta después de 15 minutos de inactividad y luego está disponible para otros clientes.

0

Esto es muy parecido a reservar entradas para el teatro o similares en línea y sí, la forma en que describe es generalmente la forma en que funciona. En algún momento, el artículo está "reservado" en el sistema y el cliente completa la transacción o el artículo se libera después de un tiempo para que otros lo compren.

Por supuesto, en qué punto usted reserva el artículo (cuando se lo agrega al carrito, en el momento en que lo envía a pagar, etc.), depende de usted. Esperaría que ponerlo en el carro fuera la mejor opción ya que es menos probable que alguien construya una cesta de cosas solo para encontrar que la mitad ya no está disponible en el proceso de compra.

0

Este es un problema bastante común con los sistemas de inventario fijos como sede, transporte/aerolínea para conciertos, etc.

me gusta el modelo de avión, donde una vez que el itinerario que desee y haga clic en Seleccionar, se obtiene una página con información del pasajero con un mensaje que dice, asientos en espera y ahora tiene xx (10/15) minutos para completar la compra. Todo se vuelve explícito en ese momento. Para otro artículo único/único, creo que un mensaje en cualquier página, que el usuario haga clic, diciendo que tiene xx (minutos) restantes para completar la compra sería un gran motivador para los compradores "al límite" !

Cuestiones relacionadas