Tienda física y online con un solo stock: cómo se hace de verdad
Vendes lo mismo en seis tiendas y en la web. Un cliente compra online la última unidad de una talla 40 a las 19:42. A las 19:44, en la tienda de Valencia, alguien se lleva esa misma unidad de la percha. Alguien se va a quedar sin producto y tú vas a tener que llamarle. Eso no es un fallo de tu tienda online: es que el stock único no está resuelto, solo está sincronizado. No es lo mismo.
La mayoría de proyectos de "stock único" que salen mal no fallan por la tecnología. Fallan porque nadie decidió antes tres cosas: quién es el dueño del número, cuándo una unidad deja de estar disponible y qué pasa cuando el número está mal. Vamos con eso.
Un producto no tiene un stock, tiene tres
Cuando dices "tengo 12 unidades", en realidad estás mezclando conceptos que el sistema tiene que distinguir por separado. Si no los separas, todo lo demás se cae.
- Stock físico: lo que hay en la estantería o en el palé. Lo que contarías si fueras con un lector de código de barras ahora mismo.
- Stock comprometido: unidades que están físicamente ahí pero ya tienen dueño. Pedidos pagados sin preparar, transferencias entre tiendas en curso, reservas de un cliente que pasa mañana.
- Stock disponible para vender: físico menos comprometido, menos el colchón que tú decidas. Este es el único número que debería llegar a la web, al marketplace y al TPV.
Suena obvio escrito. En la práctica, en muchos e-commerce el ERP manda el campo "existencias" tal cual y ahí van incluidos los pedidos de ayer que aún no se han preparado. Resultado: vendes dos veces la misma unidad y encima el error se propaga a Amazon, que te penaliza por cancelar.
Si tu integración envía el campo de existencias del ERP sin restar comprometido, no tienes stock único. Tienes stock físico compartido, que es otra cosa y sobrevende de forma sistemática los días de más volumen.
La ventana de exposición: dónde se cuela la sobreventa
Entre que se vende una unidad en el TPV de Zaragoza y que ese número llega a la ficha de producto de tu web pasa un tiempo. A ese hueco lo llamo ventana de exposición: los minutos en los que tu web enseña un stock que ya no existe.
Con una sincronización cada 15 minutos, tienes 15 minutos de ventana. Parece poco. Pero calcula: si en un sábado de rebajas haces 400 tickets entre seis tiendas y 60 pedidos online, la probabilidad de que dos ventas coincidan sobre la última unidad de una referencia con poco stock deja de ser anecdótica. Y siempre pasa con lo mismo: con lo que se está agotando, que es justo lo que más se vende.
Hay tres formas de estrechar esa ventana, y las tres tienen precio:
| Enfoque | Ventana típica | Contrapartida |
|---|---|---|
| Sincronización programada (cada 5-30 min) | Minutos | Barato y estable. Sobrevende en picos y en referencias de unidad última. |
| Eventos: cada venta dispara una actualización | Segundos | Requiere que el TPV y el ERP puedan emitir avisos. Muchos ERP españoles de gama media no lo hacen sin desarrollo a medida. |
| Consulta en tiempo real al confirmar el pedido | Prácticamente cero en el momento crítico | Dependes de que el ERP responda rápido siempre. Si tarda 4 segundos, tu checkout tarda 4 segundos más. Si se cae, no vendes. |
Lo razonable en casi todos los casos es una mezcla: sincronización frecuente para el catálogo general y una comprobación puntual en el momento de confirmar el pedido, solo para las líneas de ese pedido. Así no castigas el rendimiento de la web entera por proteger unas pocas unidades. Si el ERP no responde en, digamos, dos segundos, el sistema tira del último valor conocido y sigue. Mejor una sobreventa ocasional que un checkout caído.
Si el problema es que los números directamente no cuadran entre sistemas y no sabes cuál creerte, eso es un escalón anterior y lo tratamos aparte en por qué tu stock nunca cuadra entre el ERP y la tienda online.
El colchón de seguridad: útil, pero te está costando dinero
El apaño clásico: "si en el ERP hay menos de 3, en la web pongo 0". Funciona. Y a la vez te está escondiendo ventas.
Un colchón fijo de 2 unidades sobre 3.000 referencias significa que en cualquier momento tienes 6.000 unidades invisibles para el canal online. En una marca con precio medio de 45 €, eso es mucho catálogo apagado. En referencias de rotación baja, con las que casi nunca vas a tener una venta simultánea, el colchón no te protege de nada y solo te quita escaparate.
El colchón tiene que ser por segmento, no global. Una regla de partida razonable, y esto son órdenes de magnitud para discutir con tu equipo, no una tabla sagrada:
| Tipo de referencia | Colchón orientativo | Por qué |
|---|---|---|
| Alta rotación, presente en varias tiendas | 1-3 unidades | Es donde ocurre la venta simultánea. Además, el colchón se recupera rápido con la siguiente reposición. |
| Rotación media | 1 unidad | Riesgo moderado, coste de oportunidad bajo. |
| Rotación baja o pieza única | 0 | Si es la última, quieres venderla. La probabilidad de colisión es mínima. |
| Producto de exposición o muestrario | Excluido del stock disponible | Está en la tienda pero no es vendible online. Marcarlo como comprometido, no como colchón. |
Y una advertencia: el colchón no arregla un inventario mal contado. Si tu diferencia de inventario anual es del 3 %, tienes un problema de conteo, no de integración. Ningún margen de seguridad tapa eso; solo lo hace más caro, porque acabas subiendo el colchón hasta niveles absurdos para compensar descuadres reales.
El colchón de seguridad es un seguro. Como todo seguro, tiene prima. Págala donde hay riesgo, no en las 3.000 referencias del catálogo.
Reservas: el momento exacto en que una unidad deja de estar libre
Esta es la decisión que más discusiones genera y la que casi nadie documenta. ¿Cuándo se descuenta una unidad del stock disponible?
- Al añadir al carrito: protege mucho, pero bloquea inventario por gente que no va a comprar. En una tienda con tasa de abandono de carrito del 70 % o más, esto es sangrar stock. Solo tiene sentido en lanzamientos, drops o entradas con demanda muy por encima de la oferta.
- Al iniciar el pago: el punto de equilibrio para la mayoría. Reservas con un tiempo de vida corto, del orden de 10-20 minutos, y si no se confirma el pago, la unidad vuelve.
- Al confirmar el pago: lo más simple y lo que más sobrevende, porque entre pasarela y confirmación pueden pasar minutos con transferencias, Bizum o métodos que confirman en diferido.
Y aquí llega el caso que rompe todos los esquemas: la recogida en tienda. Cuando un cliente compra online para recoger en la tienda de Sevilla, esa unidad tiene que quedar bloqueada en Sevilla, no en el stock global. Si tu sistema solo maneja un número agregado, la dependienta va a buscar la unidad y no está, porque estaba en Bilbao. El stock único no significa un número único: significa un número por ubicación, consolidado para mostrar, desglosado para operar.
Toda reserva necesita fecha de muerte. Las reservas sin caducidad se acumulan durante meses y acaban comiéndose el disponible sin que nadie sepa por qué. Reserva de checkout: minutos. Reserva de recogida en tienda: 48-72 horas y aviso automático al cliente antes de liberarla.
Por qué el stock a cero no es tu enemigo
Existe un miedo casi cultural a que una ficha diga "agotado". Se pierde la venta, se pierde el posicionamiento, la página parece muerta. Así que se infla el número, se deja el producto comprable y ya se verá.
Compara los dos errores con calma:
| Cero cuando hay stock (rotura falsa) | Disponible cuando no hay (sobreventa) | |
|---|---|---|
| Coste directo | Una venta que no ocurre | Cobro, cancelación, devolución del dinero, comisión de pasarela que a menudo no recuperas |
| Coste de atención | Cero | Llamada o correo, gestión manual, a veces compensación |
| Efecto en el cliente | No se entera | Se entera perfectamente. Es de las peores experiencias de compra que existen |
| Efecto en marketplaces | Neutro | Métricas de cancelación por defecto del vendedor; en casos repetidos, suspensión de cuenta |
| Efecto en publicidad | Dejas de pagar clics por algo que no tienes | Pagas clics, conversiones y luego devuelves el dinero |
El cero, además, es información. Un cero limpio y frecuente en una referencia te está diciendo que la repongas. Un cero permanente en 400 referencias te está diciendo que tienes catálogo muerto ocupando sitio.
Lo que sí hay que hacer es trabajar el cero en vez de esconderlo. Un producto agotado puede seguir aportando: aviso de disponibilidad por correo, mostrar en qué tiendas queda unidad, ofrecer la talla o el color contiguo, o venta bajo pedido con fecha estimada honesta cuando el proveedor te la garantiza. Ninguna de esas cosas es difícil. Simplemente nadie las prioriza porque duele menos inflar el número.
Quién manda: la fuente de verdad y la pieza que falta
El stock único necesita un sistema que sea el dueño del número. Uno solo. Normalmente el ERP o el sistema de almacén. Todo lo demás —web, TPV, marketplaces, el Excel del jefe de producto— consume ese número y no lo modifica por su cuenta.
El problema es que, en un negocio con tiendas, ese dueño recibe información de varios sitios a la vez: ventas del TPV, pedidos web, devoluciones, transferencias entre tiendas, entradas de proveedor. Conectar cada uno de esos sistemas contra todos los demás es donde los proyectos se vuelven ingobernables: seis conexiones se convierten en quince, y cada cambio de versión de cualquier pieza rompe algo.
Por eso, a partir de cierto tamaño —digamos, más de dos canales de venta y más de un punto físico—, la respuesta suele ser una capa intermedia que centraliza las reglas: quién gana si dos sistemas discrepan, qué colchón se aplica a cada familia, en qué orden se procesan los movimientos. Eso es un middleware, y tiene su coste de mantenimiento; no es gratis ni es para todos. Con una tienda física y una web, probablemente no lo necesites: una integración bien hecha entre dos sistemas basta.
Y sí, todo esto se apoya en que tus sistemas puedan hablar entre ellos, que es de lo que va esa API que te nombran en todos los presupuestos. Antes de firmar nada, comprueba una cosa muy concreta: si tu TPV puede notificar una venta en el momento en que ocurre o solo cierra caja a final del día. Si es lo segundo, olvídate del tiempo real y diseña para una ventana de horas, con colchones más generosos. Es una limitación legítima, pero condiciona todo el proyecto y más vale saberlo el primer día que el último.
Cómo saber si está funcionando
Un proyecto de stock único no se da por terminado el día que se activa. Se mide. Tres indicadores bastan, y los puedes sacar de tus propios datos:
- Tasa de sobreventa: pedidos cancelados o modificados por falta de stock sobre el total de pedidos. Antes de tocar nada, mídela. Es tu punto de partida. En tiendas con integración razonable suele moverse por debajo del 1-2 %, pero depende tanto del sector y del tipo de producto que el número que importa es el tuyo, no el de nadie más.
- Referencias en cero que tienen existencias físicas: mide cuánto catálogo estás apagando de más. Cruza un día cualquiera el listado de agotados en web con el inventario real. Si te salen cientos de referencias, tu colchón está mal calibrado.
- Latencia real de sincronización: no la que pone el contrato, la que ocurre. Vende una unidad en tienda con el cronómetro y mira cuánto tarda en verse en la web. Hazlo un martes por la mañana y hazlo un sábado a las siete de la tarde. Los números serán distintos y el segundo es el que cuenta.
Casi todos los sistemas de stock funcionan bien en horas valle. El proyecto se juzga en el pico: campaña, rebajas, Black Friday. Si nadie ha probado la integración con volumen alto antes de ponerla en producción, no está probada.
Una última cosa, porque conviene decirla: el stock único no siempre es la mejor decisión de negocio. Si tu operativa de tienda es caótica, si el inventario descuadra mucho o si el personal no tiene tiempo de preparar pedidos web entre clientes, separar físicamente un stock dedicado al online —su zona, su conteo, su reposición— es más simple, más fiable y bastante más barato de montar. Pierdes flexibilidad y tienes inventario duplicado, y con catálogos grandes es inviable. Pero para una marca con 200 referencias y dos tiendas, muchas veces es la respuesta correcta y nadie se la plantea porque suena a paso atrás. No lo es. Es elegir dónde pones la complejidad.
Si este problema está entre dos proveedores tuyos,
es justo donde suelo entrar.