Imaginá un local con una última unidad de un producto muy pedido. A las 10:02 un cliente en el local la levanta y la lleva a la caja. A las 10:03 alguien que mira la tienda online hace clic en "comprar" el mismo producto y paga. Las dos operaciones se veían bien para quien las tenía enfrente. Ahora el local tiene una unidad y dos clientes contentos, lo que significa que uno va a terminar disconforme.

Eso es sobreventa. No es mala suerte. Es lo que pasa cuando dos lugares venden del mismo stock y ninguno sabe lo que el otro acaba de hacer.

Por qué ocurre

Suele haber dos causas, y a menudo aparecen juntas.

Dos fuentes de verdad. El local guarda el stock en un sistema y la tienda online en otro. Cada uno tiene su propio número para el mismo producto. Aun si alguien actualiza uno desde el otro, siempre hay un intervalo entre "algo cambió acá" y "el otro sistema lo sabe".

Demoras. Si los dos se sincronizan cada quince minutos, o cada noche, hay una ventana en la que ambos pueden vender la última unidad. La ventana es corta para productos lentos y dolorosa para los populares, y empeora justo cuando más querés que las ventas funcionen, por ejemplo durante una promoción.

Una tercera causa, más silenciosa, es que nadie decidió qué significa el número de stock. ¿Es lo que hay en el estante? ¿Lo que hay en el estante menos lo que está en el carrito online de un cliente? ¿Lo que hay menos los pedidos que todavía no se prepararon? Sin una respuesta, cada sistema inventa la suya.

Reservas: separar "en el estante" de "disponible para vender"

La idea más útil en este tema es que son dos números distintos.

  • En existencia es lo que físicamente hay.
  • Disponible es lo que todavía podés prometerle a alguien: lo que hay en existencia, menos todo lo ya prometido pero aún no enviado.

Cuando entra un pedido online, el sistema no espera a que el producto salga del local para reducir lo disponible. Reserva una unidad de inmediato. La unidad sigue en el estante, pero pertenece a ese pedido. Lo mismo vale cuando un vendedor aparta una para un cliente. Más tarde, cuando el pedido se prepara y se envía, baja la existencia y la reserva se cierra.

Si un pedido online nunca se paga, o se abandona el checkout, la reserva vence y la unidad vuelve a estar disponible. Cuánto dura una reserva es una regla de negocio, no un detalle técnico: si es muy corta, los clientes pierden el producto durante el checkout; si es muy larga, bloqueás stock que nadie va a comprar.

Dos maneras de mantener los sistemas al día

En términos simples, hay dos enfoques, y muchos negocios terminan con una mezcla.

La sincronización periódica significa que una tarea corre cada pocos minutos y copia los números de stock de un sistema al otro. Es simple de construir y fácil de entender. Su debilidad es justamente el intervalo entre corridas. Para productos con mucho stock, ese intervalo es inofensivo. Para productos con una o dos unidades, es donde vive la sobreventa.

La sincronización por eventos significa que cada cambio, como una venta, una devolución o una transferencia, se envía al otro sistema apenas ocurre. La ventana pasa a ser de segundos en lugar de minutos. Requiere más cuidado al construirla, porque el sistema tiene que tolerar mensajes que llegan tarde, repetidos o desordenados, y que el otro lado esté caído un rato. Una versión bien hecha guarda una cola de cambios y reintenta hasta que se entregan.

Un compromiso común es usar eventos en el momento de la venta, más una verificación periódica que compara ambos lados y avisa de cualquier diferencia. Los eventos mantienen la rapidez; la verificación atrapa lo que se coló.

Otra protección es un margen de seguridad: mostrar online una unidad menos de las que tenés, u ocultar la última unidad de los productos que se venden rápido, para que el local siempre tenga algo para vender a quien entra. Cuesta algunas ventas online y evita muchas disculpas.

Una fuente de verdad, muchos canales de venta

Un diseño que evita buena parte de los problemas es decidir que un solo sistema guarda los números de stock, y todo lo demás, la caja del local, la tienda online, un marketplace, le consulta o le avisa, pero nunca guarda su propia verdad por separado. Así la sincronización deja de ser una copia entre iguales y pasa a ser una consulta a una única autoridad.

¿Integración a medida o un plugin?

Para una tienda online estándar conectada a una caja estándar, un plugin o conector ya hecho suele ser un punto de partida razonable. Es rápido, relativamente barato y lo mantiene otro. Las desventajas aparecen después. Quedás atado a cómo funciona el plugin: cada cuánto sincroniza, si soporta reservas, si maneja varios depósitos o ubicaciones, combos o devoluciones como lo hacés vos. Cuando algo falla, dependés de que el autor del plugin lo arregle.

Una integración a medida suele costar más al empezar y más de mantener, pero puede seguir tus reglas: tu tiempo de reserva, tus márgenes, tus ubicaciones, tu manera de manejar devoluciones. Tiene sentido cuando la sobreventa ya te cuesta clientes, cuando tu lógica de stock no encaja con los conectores estándar, o cuando varios canales tienen que compartir el mismo stock.

Un primer paso práctico

Tomá tus cinco productos de venta más rápida y revisá qué pasa cuando a uno le queda una sola unidad. ¿De dónde saca cada sistema su número, qué tan viejo puede ser, y qué pasa si una venta del local y un pedido online llegan en el mismo minuto? Anotá las respuestas. Te dicen si tenés un hueco chico que un margen de seguridad puede cubrir, o uno estructural que necesita una única fuente de verdad.

Hablemos de su situación.