Ilustración del artículo: Cómo dejar de vender productos que ya no tienes en stock
Foto: Tomás Asurmendi en Pexels

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:

  1. Entra en Productos y filtra por los que tengan seguimiento de inventario activo.
  2. Desmarca «Continuar vendiendo cuando esté agotado» en todo lo que no sea preventa o fabricación bajo pedido.
  3. 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:

AjusteDóndeValor sugerido
Hold stock (minutes)WooCommerce → Ajustes → Productos → Inventario45 con tarjeta, 1440 con transferencia
Low stock thresholdMismo panel, global5 unidades, o una semana de venta
Out of stock thresholdMismo panel, global0, salvo que apartes unidades para tienda física
Continuar vendiendo cuando esté agotadoShopify, ficha de productoDesactivado 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:

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:

  1. 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.
  2. Desactiva la venta bajo cero en todo lo que no sea preventa declarada.
  3. 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ó.
  4. 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.
  5. 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.
  6. 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