Cómo dejar de vender productos que ya no tienes en stock
Por Reykent Angulo ·

En corto: Vendes producto agotado porque el stock se descuenta al pagar y no al reservar, y porque cada canal lleva su propio conteo. Se arregla apagando la venta bajo cero, poniendo una reserva de carrito con caducidad y dejando una sola fuente de verdad para todos los canales.
Tu tienda vende producto agotado por tres motivos concretos: tienes activada la venta bajo cero, el stock se descuenta cuando alguien paga y no cuando llena el carrito, y cada canal donde vendes lleva su propio conteo. Los tres se arreglan en una tarde y ninguno necesita programador.
El Shopify Help Center lo define sin rodeos: la sobreventa ocurre «cuando vendes más unidades de un producto de las que tienes en stock en esa ubicación». No es un fallo raro. Es el comportamiento por defecto de casi cualquier tienda que crece.
Y sale caro. El estudio de IHL Group, recogido por Retail TouchPoints calcula que la distorsión de inventario, que junta roturas de stock y exceso, costó al comercio mundial 1,77 billones de dólares en 2023. En tu tienda eso se traduce en algo más pequeño y más doloroso: devolver dinero, escribir un correo de disculpa y perder al cliente.
El interruptor que casi nadie revisa
Empieza por aquí porque es el más rápido.
En Shopify, cada producto tiene una casilla llamada Continuar vendiendo cuando esté agotado. Si está marcada, la tienda acepta pedidos con el inventario en cero o en negativo. El Centro de ayuda de Shopify aclara dos cosas que conviene tener presentes: solo puedes activarla si antes has activado Inventario con seguimiento, y no aplica a los pedidos hechos desde Shopify POS. O sea, si vendes también en mostrador, el mostrador no respeta esa regla.
Qué hacer:
- Entra en Productos y filtra por los que tengan seguimiento de inventario activo.
- Desmarca «Continuar vendiendo cuando esté agotado» en todo lo que no sea preventa o fabricación bajo pedido.
- Déjala marcada solo donde la reposición esté confirmada con fecha. Y dilo en la ficha.
En WooCommerce no hay una casilla global equivalente. Los pedidos reservados (backorders) se deciden producto a producto, en la pestaña Inventario de la ficha del producto, y admiten tres valores: no permitir, permitir avisando al cliente o permitir sin avisar. La pantalla de Ajustes → Productos → Inventario es otra cosa: ahí viven los ajustes de toda la tienda, la gestión de stock, Hold stock (minutes), los avisos de stock bajo y agotado con su destinatario, los dos umbrales, la visibilidad de los agotados y el formato en que se muestra el stock. Si buscas los backorders ahí, no están.
Reserva el stock cuando entra al carrito, no cuando paga
Este es el que produce la mayoría de las sobreventas reales. Dos personas cargan la última unidad. Una tarda tres minutos en pagar, la otra siete. Las dos compran.
WooCommerce trae la solución de fábrica y viene vacía. Se llama Hold stock (minutes) y está en Ajustes → Productos → Inventario. La documentación de WooCommerce lo describe así: retiene el producto de los pedidos sin pagar durante X minutos, y al llegar al límite cancela el pedido pendiente y devuelve el stock retenido al inventario disponible. Si lo dejas en blanco, la función está desactivada.
Valores de partida razonables:
| Ajuste | Dónde | Valor sugerido |
|---|---|---|
| Hold stock (minutes) | WooCommerce → Ajustes → Productos → Inventario | 45 con tarjeta, 1440 con transferencia |
| Low stock threshold | Mismo panel, global | 5 unidades, o una semana de venta |
| Out of stock threshold | Mismo panel, global | 0, salvo que apartes unidades para tienda física |
| Continuar vendiendo cuando esté agotado | Shopify, ficha de producto | Desactivado por defecto |
Ojo con ese Out of stock threshold: es un ajuste de toda la tienda, no se puede afinar producto a producto. Marca a partir de qué número WooCommerce considera agotado un artículo, así que subirlo a 2 para amortiguar el desfase entre canales significa dejar de vender la penúltima unidad de todo el catálogo, incluido lo que solo vendes en la web. Por eso la recomendación es 0 y solo tiene sentido moverlo si de verdad apartas unidades para otro canal en toda la tienda.
Un canal más es un conteo más
Cada canal donde publicas lleva su propio número y su propio ritmo de actualización. Ahí es donde se rompe todo.
En Meta, el catálogo usa el campo availability con valores in stock y out of stock. Según Meta for Developers, los artículos agotados aparecen como sold out en las tiendas y dejan de mostrarse en anuncios. El campo de cantidad se llama ahora quantity_to_sell_on_facebook y espera un número entero. Si tu feed se sube una vez al día, tienes hasta 24 horas de anuncios llevando gente a algo que no existe.
En Amazon el detalle es otro. La FBA Inventory API devuelve cinco estados distintos: Fulfillable, Inbound, Reserved, Unfulfillable y Researching. Solo el primero es vendible. Si tu integración suma todo, estás publicando como disponible mercancía que está en tránsito o dañada.
Y si conectas una app de sincronización a Shopify, mira antes los límites. Shopify Dev publica la tarifa de la GraphQL Admin API por plan: 100 puntos por segundo en Standard, 200 en Advanced, 1000 en Plus y 2000 en Commerce Components, con un tope de 1.000 puntos por consulta individual. Una app que actualiza 8.000 SKU uno a uno en el plan básico no va a ir en tiempo real, por mucho que lo prometa la ficha de la app store.
La regla práctica: elige una fuente de verdad. Suele ser el ERP si lo tienes, y si no, la tienda principal. Todo lo demás lee de ahí. Dos sistemas escribiendo el mismo número siempre acaban peleándose.
Agotado no es lo mismo que borrado
Aquí se pierde dinero por exceso de celo. Quitar la ficha mata el tráfico que tardaste meses en construir y deja al comprador sin salida.
El Baymard Institute encontró que el 68% de los sitios no permite hacer pedidos de productos agotados temporalmente, y que ante un producto sin stock el 30% de los usuarios abandona directamente para buscarlo en otra parte. Ese 30% es tuyo y se va gratis.
Lo que sí funciona en la ficha de agotado:
- Avísame cuando llegue, con correo o WhatsApp. Es el formulario más rentable de una tienda.
- Fecha de reposición si la sabes. «Vuelve el 12 de agosto» retiene mucho más que «no disponible».
- Tres alternativas reales del mismo rango de precio, no relleno del catálogo.
- Preventa con cargo diferido solo si el proveedor está confirmado.
Ten en cuenta que el carrito ya es un colador de por sí: el Baymard Institute documenta un abandono medio del 70,22% sobre 50 estudios publicados entre 2006 y 2025. No hace falta añadirle una rotura de stock.
Qué hacer el lunes por la mañana
Bloquea dos horas y ve en este orden:
- Exporta tu catálogo a CSV y filtra por stock menor o igual a cero. Cuenta cuántos siguen comprables. Ese número es tu problema medido.
- Desactiva la venta bajo cero en todo lo que no sea preventa declarada.
- Pon Hold stock en 45 minutos si estás en WooCommerce. Haz un pedido de prueba, no lo pagues y comprueba a los 46 minutos que el stock volvió.
- Decide el umbral de agotado de la tienda de una vez y déjalo escrito: 0 si toda tu venta pasa por la web, un colchón solo si apartas unidades para mostrador o marketplace. Es un ajuste global, no una tarea producto a producto. Si lo que quieres es controlar los pedidos reservados de tus 20 más vendidos, eso sí se toca en la pestaña Inventario de cada ficha.
- Anota la hora de la última sincronización de cada canal: Meta, Mercado Libre, marketplace, tienda física. Cualquiera por encima de una hora es un candidato a sobreventa.
- Monta el aviso de reposición en las fichas agotadas. Cada correo capturado ahí es una venta que ya no depende del stock de hoy.
Si al terminar el punto 5 descubres que tienes cuatro canales sincronizando a mano, ese es tu siguiente proyecto. No un catálogo más bonito.
Preguntas frecuentes
- ¿Por qué mi tienda deja comprar algo que está en cero?
- Porque tienes activada la opción de seguir vendiendo cuando está agotado, o porque el stock lo lleva otro canal que aún no ha sincronizado. En Shopify se llama «Continuar vendiendo cuando esté agotado» y viene por producto, no por tienda.
- ¿Debo ocultar los productos agotados de mi web?
- No. Ocultar la ficha te quita tráfico y posicionamiento. Deja la página viva, marca el producto como agotado y pon un aviso de reposición para capturar el correo o el WhatsApp.
- ¿Cuánto tiempo debo reservar el stock de un carrito sin pagar?
- Entre 30 y 60 minutos es un rango razonable para pago con tarjeta. Si aceptas transferencia o pago contra entrega, sube a 24 horas y cancela automáticamente al vencer.
Fuentes
- Shopify Help Center — Setting up order fulfillment for locations — Definición de sobreventa y reparto de pedidos entre ubicaciones
- Shopify Centro de ayuda — Continuar vendiendo cuando esté agotado — La opción de venta bajo cero y su excepción en Shopify POS
- WooCommerce Documentation — Products Settings — Hold stock (minutes), umbral de stock bajo y umbral de agotado
- Shopify Dev — Shopify API rate limits — Límites de la GraphQL Admin API por plan
- Meta for Developers — Commerce Platform Catalog Fields — Campos availability y quantity_to_sell_on_facebook
- Amazon Selling Partner API — FBA Inventory API — Los cinco estados de inventario en la red de Amazon
- Baymard Institute — Let Users Purchase Temporarily Out of Stock Products — Porcentaje de sitios que no permiten pedir agotados y abandono ante un producto sin stock
- Baymard Institute — 50 Cart Abandonment Rate Statistics — Tasa media documentada de abandono de carrito
- IHL Group, vía Retail TouchPoints — Coste mundial de la distorsión de inventario
¿Quieres saber cuánto te está costando esto a ti? En 15 minutos te digo por dónde se te van las ventas y qué arreglar primero. Sin compromiso y sin presentación comercial.