Academia › Construir › Reservas y pedidos
La última unidad, dos personas comprando a la vez: quién se la lleva
Sabe que el empate lo gana el pago que se completa primero en tu sistema, no el clic que llega primero desde un móvil, y qué le dice a quien pierde antes de cobrarle nada.
Con el hueco ya acotado a diez minutos, queda decidir quién se lleva la unidad cuando dos compras se cruzan dentro de esa misma ventana. Son las ocho de la tarde y te queda una plaza para el taller del sábado. Dos personas la ven libre en la web casi al mismo segundo. Las dos aprietan "reservar" con un parpadeo de diferencia entre una y otra. Solo una se la lleva, y dentro de tres minutos vas a tener que decidir qué le escribes a la que se queda sin sitio.
Ya sabes que tu web resta la unidad al cobrar, no al confirmar, y que a quien empieza a pagar le guardas el hueco un rato mientras rellena la tarjeta. Con eso resuelves casi todos los casos: si Marta empieza a pagar dos minutos antes que Julián, Julián ve la plaza cerrada antes de sacar la cartera de casa. El empate de verdad, el que te obliga a decidir una regla, solo existe en la rendija de segundos en la que dos personas aprietan el botón casi a la vez, antes de que ese hueco se haya asignado a nadie todavía.
La regla que sí funciona
La tentación es fiarse del reloj: gana quien hizo clic antes. Suena justo, y es la primera regla que se le ocurre a casi todo el mundo. Pero no sirve. El reloj del móvil de Marta y el del móvil de Julián no están sincronizados entre sí, y el mensaje de cada uno tarda un tiempo distinto en llegar a tu servidor según la cobertura que tenga en ese momento, o según si su banco le pide un código de confirmación y el de la otra persona no. Puedes tener a Julián apretando el botón un segundo antes que Marta y aun así llegando después que ella a tu sistema.
La regla que funciona es otra: gana quien completa el pago primero dentro de tu sistema, no quien lo intenta primero desde su pantalla. Tu servidor recibe los dos intentos de cobro y los procesa uno detrás de otro, nunca a la vez, aunque para los dos compradores les parezca simultáneo desde donde están. Al primero que llega se le resta la unidad y se le cobra. Al segundo, cuando le toca su turno una fracción de segundo después, ya no queda nada que cobrarle.
- Se decide por el reloj de cada móvil
- Dos relojes que no coinciden entre sí
- Depende de la cobertura de cada comprador al enviar la petición
- Se decide por el orden de llegada a un mismo sistema
- Un único reloj: el de tu servidor
- No importa la cobertura de nadie, solo el orden en que se procesan los dos cobros
Cual elijo: Elige siempre la segunda. La primera depende de aparatos que no controlas; la segunda depende de un solo punto, el tuyo, y ahí sí puedes garantizar que nunca se vende dos veces la misma unidad.
Por qué comprobar y cobrar en dos pasos te la juega
Hay una forma de montarlo que parece razonable y no lo es: primero compruebas si queda unidad, y si queda, entonces cobras. Dos pasos, uno detrás de otro, como se haría a mano en una tienda con un cuaderno. El problema es lo que cabe entre esos dos pasos cuando todo pasa en internet y en segundos.
Si Marta y Julián comprueban el stock casi a la vez, los dos ven "queda una". Los dos pasan el primer paso sin que nada se lo impida. Luego los dos cobran, porque nada les ha dicho todavía que el otro ya se ha adelantado. Acabas con dos tarjetas cobradas y una sola plaza real. La lección uno de este curso ya dejó claro que la unidad se resta en el instante del cobro, no antes. Aquí es donde ese instante importa de verdad: comprobar y cobrar tienen que pasar en el mismo movimiento, no en dos, porque cualquier hueco entre medias es una rendija por la que entra la doble venta.
Entre el paso de comprobar y el paso de cobrar hay un hueco de tiempo en el que el otro comprador entra sin que nada se lo impida
Qué le dices a quien pierde
Resuelto quién gana, queda el otro lado del mostrador: qué ve y qué siente quien pierde el empate. Aquí casi todo el mundo comete un fallo pequeño con consecuencias grandes: dejar a esa persona con la rueda de "procesando" dando vueltas más de la cuenta, o peor todavía, dejarle terminar de escribir los dieciséis dígitos de la tarjeta para enterarse al final de que ya no había nada que comprar.
El aviso tiene que llegar antes de pedirle la tarjeta, no después. Si el hueco ya está asignado a Marta en el instante en que Julián llega al paso de pago, Julián tiene que verlo cerrado ahí mismo, sin rellenar un solo campo. Y el aviso no puede ser un simple "agotado": eso cierra la puerta de golpe y no le ofrece nada a cambio de los tres minutos que ha dedicado a decidirse. Mejor decirle que se ha agotado por segundos, con esas palabras, y darle algo concreto que hacer con esa frustración: apuntarse a una lista de espera, que le avises tú el primero si se libera una unidad, o que se le proponga directamente la siguiente fecha disponible.
Con esto ya tienes cerrado el empate: gana el pago que se completa primero en tu sistema, no el clic que llega primero desde un móvil, y a quien pierde se le avisa antes de cobrarle y se le pone algo concreto en la mano en vez de una puerta cerrada. La semana que viene bajamos un nivel más: qué pasa cuando lo que se agota no es el producto entero, sino una talla, un color o un turno concreto dentro de él.
- La regla del empate está decidida: gana el pago que se completa primero en tu sistema
- Comprobar stock y cobrar pasan en el mismo movimiento, no en dos pasos separados
- A quien pierde se le avisa antes de pedirle la tarjeta, nunca después de cobrarle
- El mensaje de aviso lleva siempre una alternativa concreta, no un simple agotado
Ponte a prueba
Responde antes de abrir cada una. Si alguna se te resiste, vuelve al apartado que la explica.
1. Un cliente escribe molesto porque le cobraste el sábado y le devolviste el dinero al día siguiente diciendo que ya no quedaba plaza.
Fallo que comprobaste el stock y cobraste en dos pasos separados, dejando un hueco por el que entró el otro comprador. Se corrige uniendo comprobación y cobro en el mismo paso, así nunca se llega a cobrar a quien ya ha perdido el empate.
2. Dos compradores dicen haber apretado el botón al mismo segundo según el reloj de sus móviles, pero uno tardó cuatro segundos más en rellenar la tarjeta.
Se lleva la plaza quien completó el pago antes en tu servidor, no quien "llegó antes" según su propio móvil: los relojes de los dos aparatos ni están sincronizados entre sí ni tienen por qué importar, lo único que cuenta es el orden en que los dos cobros se resuelven en tu sistema.
3. Te planteas avisar a quien pierde el empate con un simple "sin stock" y nada más.
No basta: cierra la puerta sin ofrecer salida a los tres minutos que esa persona ya ha invertido decidiéndose. Se sustituye por un aviso que reconozca que se ha agotado por segundos y una alternativa concreta, como lista de espera o la fecha siguiente, para no perder la venta del todo.
Ese empate se resuelve por unidad, pero solo si de verdad cuentas unidad por unidad: talla, color o turno, no el producto entero metido en un solo número.