WooCommerce no actualiza stock tras pedido cómo arreglar
Guía completa para solucionar el problema de WooCommerce que no actualiza el stock tras un pedido. Pasos, causas frecuentes, código y buenas prácticas.
Índice
- ¿Por qué WooCommerce no actualiza el stock?
- Comprobar ajustes básicos de inventario
- Revisar estado de pedido y reducción de stock
- Conflictos con plugins y temas
- Problemas frecuentes con pasarelas de pago
- Productos, variaciones y tipos de stock
- Sincronización con ERP, CRM y marketplaces
- Soluciones con código y snippets útiles
- Buenas prácticas para gestionar stock en WooCommerce
- Cómo diagnosticar y registrar errores de stock
- Checklist rápido para arreglar stock que no se actualiza
- Preguntas frecuentes
¿Por qué WooCommerce no actualiza el stock tras un pedido?
Cuando WooCommerce no actualiza el stock después de recibir un pedido, el problema suele estar relacionado con la configuración de inventario, el estado del pedido, conflictos con plugins o pasarelas de pago que no completan correctamente el proceso. Entender cómo funciona internamente la reducción de stock es clave para poder arreglarlo de forma definitiva.
WooCommerce descuenta unidades del inventario en momentos muy concretos del flujo de compra. Dependiendo de tu configuración, el stock puede reducirse al crear el pedido, al cambiar a estado "Procesando" o "Completado", o incluso no reducirse si el pedido se queda en estados intermedios como "Pendiente de pago" o "Fallido". Además, extensiones de terceros pueden modificar este comportamiento.
Resumen de causas típicas:
- Inventario global desactivado o mal configurado.
- Productos sin gestión de stock individual activada.
- Estados de pedido que no disparan la reducción de stock.
- Pasarelas de pago que no devuelven el estado correcto.
- Conflictos con plugins de reservas, suscripciones o sincronización externa.
- Errores de código personalizados o snippets mal implementados.
Comprobar ajustes básicos de inventario
El primer paso para arreglar que WooCommerce no actualice el stock tras un pedido es revisar los ajustes básicos de inventario. Un simple ajuste desmarcado puede provocar que el sistema nunca descuente unidades, aunque los pedidos se completen correctamente.
- Activar la gestión de inventario: Ve a WooCommerce > Ajustes > Productos > Inventario y asegúrate de que la opción "Activar la gestión de inventario" está marcada.
- Mantener existencias (reservas): Configura el tiempo de reserva de stock para pedidos pendientes de pago, evitando que el stock quede bloqueado indefinidamente.
- Notificaciones de pocas existencias: Activa avisos para detectar si el stock realmente se está reduciendo o no.
- Umbrales de stock bajo y agotado: Ajusta valores realistas para tu catálogo y rotación.
Paso rápido de verificación: selecciona un producto de prueba, activa la gestión de inventario, define una cantidad de stock pequeña (por ejemplo, 5 unidades) y realiza un pedido de prueba completo. Observa si el stock baja a 4. Si no cambia, continúa con las siguientes comprobaciones.
Revisar estado de pedido y reducción de stock
WooCommerce asocia la reducción de stock a determinados estados de pedido. Si tus pedidos no alcanzan esos estados, el inventario no se actualiza. También es posible que algún plugin haya cambiado el momento en el que se descuenta el stock.
Por defecto, WooCommerce descuenta stock cuando un pedido pasa a estado "Procesando" o "Completado". Si tus pedidos se quedan en "Pendiente de pago", "En espera" o "Fallido", el stock no se reducirá automáticamente.
- Abre un pedido de ejemplo en WooCommerce > Pedidos.
- Comprueba el historial de estados en la caja de notas del pedido.
- Verifica si en las notas aparece algo como "Stock reducido" o "Stock no reducido".
- Cambia manualmente el estado a "Procesando" o "Completado" y guarda.
- Revisa el producto afectado para ver si el stock ha cambiado.
Consejo: si el stock solo se actualiza cuando cambias el estado manualmente, es probable que la pasarela de pago no esté marcando el pedido como pagado o que algún plugin esté bloqueando la transición de estado.
Conflictos con plugins y temas
Los conflictos con otros plugins o con el tema activo son una de las causas más habituales de que WooCommerce no actualice el stock tras un pedido. Extensiones de reservas, suscripciones, carritos avanzados o integraciones externas pueden modificar el comportamiento estándar del inventario.
Para detectar si el problema viene de un conflicto, es recomendable hacer una prueba controlada en un entorno de staging o, si no es posible, en horas de poco tráfico.
- Cambia temporalmente al tema Storefront o a un tema por defecto de WordPress.
- Desactiva todos los plugins excepto WooCommerce.
- Realiza un pedido de prueba y comprueba si el stock se actualiza correctamente.
- Activa los plugins uno a uno, realizando pruebas tras cada activación.
- Cuando el problema reaparezca, habrás identificado el plugin conflictivo.
Plugins que suelen afectar al stock:
- Plugins de reservas y citas que gestionan plazas en lugar de stock tradicional.
- Plugins de suscripciones y pagos recurrentes.
- Plugins de carrito y checkout personalizados.
- Plugins de sincronización con Amazon, eBay u otros marketplaces.
- Plugins de gestión avanzada de inventario o almacenes múltiples.
Problemas frecuentes con pasarelas de pago
Las pasarelas de pago son responsables de comunicar a WooCommerce si un pago ha sido correcto o no. Si esa comunicación falla, el pedido puede quedarse en un estado que no reduce stock, aunque el cliente haya pagado. Esto es especialmente frecuente con PayPal, TPV bancarios o integraciones personalizadas.
- IPN o webhooks mal configurados: la pasarela no puede notificar a tu sitio que el pago se ha completado.
- Pedidos que se quedan en "Pendiente de pago": el stock no se descuenta porque WooCommerce no recibe confirmación.
- Pagos duplicados o reintentados: el stock puede reducirse varias veces o no reducirse en absoluto.
- Modo sandbox o pruebas: algunos modos de prueba no actualizan estados de la misma forma que en producción.
Pasos para revisar tu pasarela de pago:
- Comprueba la documentación oficial del plugin de pago que utilizas.
- Verifica las URLs de notificación (IPN, webhooks) en el panel de la pasarela.
- Activa el modo de depuración (logs) en WooCommerce > Ajustes > Pagos.
- Realiza un pedido de prueba y revisa los registros en WooCommerce > Estado > Registros.
- Confirma que el pedido pasa a "Procesando" o "Completado" automáticamente.
Productos, variaciones y tipos de stock
No todos los productos gestionan el stock de la misma forma. WooCommerce permite controlar el inventario a nivel de producto simple, producto variable, variación individual o incluso desactivar la gestión de stock para ciertos artículos. Si el stock no se actualiza, es importante revisar cómo está configurado cada tipo de producto.
- Productos simples: deben tener marcada la opción "Gestionar inventario" y una cantidad de stock definida.
- Productos variables: el stock puede gestionarse a nivel de variación, no solo a nivel de producto padre.
- Productos descargables o virtuales: pueden no necesitar stock, pero si lo usas, la lógica es la misma.
- Productos agrupados o externos: normalmente no gestionan stock directamente.
Errores típicos con variaciones:
- Gestionar stock solo en el producto padre y no en cada variación.
- Variaciones con stock infinito porque no tienen cantidad definida.
- Variaciones duplicadas o antiguas que siguen apareciendo en pedidos.
- Importaciones masivas que sobrescriben el stock sin avisar.
Sincronización con ERP, CRM y marketplaces
Si utilizas integraciones con ERP, CRM o marketplaces como Amazon, eBay o Mercado Libre, es posible que el stock de WooCommerce se vea sobrescrito o bloqueado por estos sistemas externos. En estos escenarios, WooCommerce puede estar reduciendo el stock correctamente, pero una sincronización posterior lo revierte.
Las integraciones suelen funcionar mediante cron jobs, APIs o webhooks que actualizan el inventario cada cierto tiempo. Un error de configuración puede provocar desajustes importantes entre sistemas.
- Define claramente qué sistema es el "maestro" de stock (ERP o WooCommerce).
- Revisa la frecuencia de sincronización y los logs de la integración.
- Comprueba si el stock cambia minutos después de un pedido sin que haya nuevas ventas.
- Evita tener varias integraciones que actualicen el mismo producto a la vez.
Recomendación: en proyectos con alto volumen y múltiples canales de venta, utiliza un sistema centralizado de inventario y configura WooCommerce como "espejo" de ese sistema, no al revés. Esto reduce el riesgo de que el stock se desajuste tras cada pedido.
Soluciones con código y snippets útiles
En algunos casos, para arreglar que WooCommerce no actualice el stock tras un pedido es necesario recurrir a pequeños fragmentos de código (snippets). Estos se añaden normalmente al archivo functions.php del tema hijo o mediante un plugin de snippets. Antes de aplicar cualquier cambio, realiza siempre una copia de seguridad.
Un enfoque habitual es forzar la reducción de stock cuando el pedido alcanza un determinado estado, o volver a sincronizar el inventario si se detecta un desajuste.
Ejemplo de snippet para forzar reducción de stock al completar pedido:
// Forzar reduccion de stock cuando el pedido se marca como completado
add_action( 'woocommerce_order_status_completed', 'mi_forzar_reduccion_stock', 10, 1 );
function mi_forzar_reduccion_stock( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
if ( ! $order ) {
return;
}
foreach ( $order->get_items() as $item ) {
$product = $item->get_product();
if ( ! $product || ! $product->managing_stock() ) {
continue;
}
$qty = $item->get_quantity();
wc_update_product_stock( $product, $qty * -1, 'decrease' );
}
}
Este código fuerza una reducción de stock cuando el pedido pasa a "Completado", incluso si por algún motivo WooCommerce no lo hizo en el momento habitual. Es importante evitar duplicar reducciones, por lo que solo debe usarse si has comprobado que el stock no se descuenta en absoluto.
Buenas prácticas al usar snippets:
- Prueba siempre en un entorno de staging antes de aplicar en producción.
- Documenta qué snippets has añadido y por qué.
- Evita duplicar funciones que ya realiza un plugin de confianza.
- Monitoriza los pedidos durante unos días tras aplicar el cambio.
Buenas prácticas para gestionar stock en WooCommerce
Más allá de arreglar el problema puntual de que WooCommerce no actualiza el stock tras un pedido, es recomendable aplicar una serie de buenas prácticas para minimizar errores futuros y mantener un inventario fiable. Un stock mal gestionado se traduce en ventas perdidas, clientes insatisfechos y problemas de logística.
- Usa siempre gestión de inventario por producto: evita dejar productos sin control de stock si realmente tienen unidades limitadas.
- Realiza cierres periódicos de inventario: compara el stock físico con el stock en WooCommerce.
- Controla devoluciones y cancelaciones: asegúrate de que el stock se devuelve correctamente al inventario.
- Evita editar pedidos pagados sin revisar el stock: cambios de cantidad pueden desajustar el inventario.
- Limita el acceso a la edición de productos: demasiados usuarios tocando el inventario aumenta el riesgo de errores.
Tip operativo: establece un procedimiento interno claro para gestionar incidencias de stock (por ejemplo, qué hacer si un cliente compra un producto sin stock, cómo registrar ajustes manuales, quién es responsable de revisar los informes de inventario, etc.).
Cómo diagnosticar y registrar errores de stock
Para solucionar de raíz que WooCommerce no actualice el stock tras un pedido, es fundamental diagnosticar correctamente el origen del problema. Trabajar con hipótesis sin datos suele llevar a parches temporales que no resuelven el fallo de fondo. WooCommerce y WordPress ofrecen herramientas de registro y depuración muy útiles.
- Activa el modo de depuración de WordPress: edita el archivo wp-config.php y habilita WP_DEBUG y WP_DEBUG_LOG.
- Revisa los logs de WooCommerce: en WooCommerce > Estado > Registros encontrarás errores relacionados con pagos, inventario y otros procesos.
- Analiza las notas de pedido: cada pedido incluye notas automáticas que indican si el stock se ha reducido o no.
- Documenta cada incidencia: anota qué producto, qué pedido y qué estado tenía cuando se detectó el fallo.
Ejemplo de flujo de diagnóstico:
- Selecciona un producto con el que hayas tenido problemas de stock.
- Apunta su stock actual y realiza un pedido de prueba.
- Observa el cambio de estado del pedido y las notas generadas.
- Revisa los logs de la pasarela de pago utilizada en ese pedido.
- Comprueba si algún plugin registra errores en el mismo intervalo de tiempo.
Checklist rápido para arreglar stock que no se actualiza
Cuando WooCommerce no actualiza el stock tras un pedido y necesitas una solución rápida, este checklist te ayudará a seguir un orden lógico de comprobaciones sin olvidar pasos importantes. Úsalo como guía práctica cada vez que detectes desajustes de inventario.
- Verificar que la gestión de inventario global está activada.
- Comprobar que el producto tiene activada la gestión de stock y una cantidad definida.
- Realizar un pedido de prueba con un método de pago estándar (por ejemplo, transferencia bancaria).
- Confirmar que el pedido pasa a "Procesando" o "Completado".
- Revisar si en las notas del pedido aparece "Stock reducido".
- Si funciona con métodos estándar, revisar la configuración de la pasarela de pago real.
- Desactivar temporalmente plugins no esenciales y repetir la prueba.
- Probar con un tema por defecto para descartar conflictos de plantilla.
- Revisar logs de WooCommerce y de la pasarela de pago.
- Aplicar, si es necesario, un snippet controlado para forzar la reducción de stock.
Objetivo del checklist: pasar de un problema difuso ("WooCommerce no actualiza el stock") a un caso concreto y reproducible, identificando si el origen está en la configuración, en un plugin, en la pasarela de pago o en una personalización de código.
Preguntas frecuentes
¿Cuándo reduce WooCommerce el stock por defecto?
Por defecto, WooCommerce reduce el stock cuando un pedido pasa a estado "Procesando" o "Completado". Si el pedido se queda en "Pendiente de pago", "En espera" o "Fallido", el stock no se descuenta automáticamente. Algunos plugins pueden modificar este comportamiento, por lo que es importante revisar el flujo completo de estados en tu tienda.
¿Qué hago si el stock baja dos veces por el mismo pedido?
Cuando el stock se reduce dos veces suele deberse a cambios manuales de estado (por ejemplo, de "Procesando" a "Completado") combinados con snippets o plugins que también fuerzan la reducción. Revisa tus personalizaciones de código, desactiva temporalmente plugins relacionados con inventario y analiza las notas del pedido para ver cuántas veces se ha aplicado la reducción.
¿Por qué los pedidos de PayPal no actualizan el stock?
Si los pedidos pagados con PayPal no actualizan el stock, normalmente el problema está en la comunicación IPN o en los webhooks. Asegúrate de que la URL de notificación configurada en PayPal es correcta, activa los logs de la pasarela en WooCommerce y realiza pedidos de prueba. Si el pedido no pasa automáticamente a "Procesando" o "Completado", WooCommerce no reducirá el stock.
¿Puedo actualizar el stock manualmente sin romper nada?
Sí, puedes ajustar el stock manualmente desde la ficha de producto, pero es importante registrar por qué lo haces y qué pedido está relacionado. Si realizas muchos ajustes manuales sin control, será más difícil diagnosticar problemas futuros. Para cambios masivos, utiliza herramientas de importación/exportación o plugins especializados que mantengan un historial de movimientos.
¿Es mejor usar un plugin de inventario avanzado o el stock nativo?
Depende del tamaño y complejidad de tu tienda. Para catálogos pequeños y medianos, el stock nativo de WooCommerce suele ser suficiente. Si gestionas varios almacenes, canales de venta o reglas complejas de disponibilidad, un plugin de inventario avanzado o una integración con ERP puede ser más adecuado, siempre que esté bien configurado y probado para no interferir con la reducción de stock tras los pedidos.
¿Necesitas orientación personalizada?
Te ayudamos a entender tus opciones y el siguiente paso.