Evaluación inicial sin contraseñas Presupuesto antes de intervenir Especialista responsable de principio a fin

Pedidos Stock Fulfilment

Las notas del pedido muestran tareas en segundo plano que fallan

Usa notas y Action Scheduler para diagnosticar fallos repetidos de webhooks, email, stock y fulfilment sin duplicar acciones.

Notas privadas repetidas suelen indicar que WooCommerce o una integración reintenta un trabajo sin alcanzar un resultado confirmado. El pedido puede parecer terminado mientras siguen fallando emails, stock, webhooks o fulfilment.

No pulses «ejecutar» en cada acción fallida. Averigua antes si el sistema externo completó el trabajo aunque la llamada local terminase en timeout.

Convierte las notas en una cronología

Lee las notas en orden y agrupa mensajes iguales. Registra primer fallo, intervalo de reintento, resultado reciente y cambios de estado.

- ID de pedido
- ID de acción y hook
- referencia externa
- número de intento
- clase HTTP o error
- efectos ya observados

Oculta datos del cliente, credenciales y payloads completos. Una línea temporal breve es más útil que copiar todo el log.

Encuentra la acción programada

Abre WooCommerce > Estado > Acciones programadas y busca por hook, pedido o argumento relacionado. Revisa estado, hora prevista y mensaje.

Acciones Pending muy antiguas apuntan al runner o cron. Fallos con reintentos regulares suelen indicar un problema de aplicación o proveedor. Conserva al menos un registro antes de limpiar: contiene la ruta y la hora necesarias para correlacionar.

Decide si repetir es seguro

Clasifica la operación. Duplicar un aviso interno puede ser molesto; repetir un cobro, crear otro envío o descontar stock tiene consecuencias económicas.

Un timeout solo significa que el emisor no recibió confirmación. Consulta al proveedor por una referencia estable antes de reintentar. Las APIs idempotentes y los IDs de evento deben devolver el mismo resultado ante llamadas repetidas.

Si el código propio no conserva esa referencia, corrígelo antes de reproducir la tarea.

Revisa WP-Cron y capacidad

Confirma que WP-Cron funciona o está sustituido por cron real. Revisa loopback, workers PHP, memoria y salud MySQL.

Mide:
- antigüedad de la acción pendiente más vieja
- crecimiento de la cola
- acciones completadas por minuto
- fatals, locks y timeouts repetidos

Aumentar procesos puede saturar MySQL si el problema real es una API lenta o una tabla bloqueada. Mide antes de cambiar concurrencia y compara horas normales con picos de pedidos.

Correlaciona PHP y proveedor

Relaciona la ejecución con logs PHP y panel externo. Un 401 suele indicar autenticación; 429, límite; 500, fallo del servicio; un timeout deja resultado desconocido.

No registres tokens ni cuerpos con direcciones. Conserva código de respuesta, ID de petición e ID de pedido. Si DNS o certificados afectan a todas las acciones hacia un proveedor, repara conectividad, no pedidos individuales.

Audita el callback

El código debe validar argumentos, manejar pedidos inexistentes y registrar el resultado durable:

$order = wc_get_order( $order_id );
if ( ! $order ) {
    throw new RuntimeException( 'Pedido no disponible para la tarea' );
}

En producción también debe proteger datos e implementar idempotencia. No marques una acción Completed antes de que exista el resultado requerido.

Reconcilia y reproduce con límites

Lista pedidos afectados y confirma pago, inventario, email y preparación. Corrige la causa y ejecuta primero una acción de bajo riesgo ya verificada.

Observa notas y resultado externo antes de procesar un lote pequeño. Detén la operación ante cualquier duplicado. No borres el historial completo para mostrar un panel limpio.

Verifica la salud de la cola

Comprueba que nuevas tareas comiencen cerca de su hora, terminen una vez y dejen notas concisas. Prueba un fallo seguro en sandbox.

El mantenimiento recurrente debe alertar por antigüedad, tasa de fallo y crecimiento de cola. Las notas muestran síntomas por cliente; las métricas revelan el problema global antes de que afecte operaciones.

ANTES DE ENVIAR LA SOLICITUD

Preguntas frecuentes.

¿Pedís contraseñas en el formulario?+

No. El formulario público nunca solicita accesos. Los datos seguros se piden únicamente después de aprobar el alcance y el presupuesto.

¿Quién revisa la incidencia?+

La solicitud llega a Jordi Ensenyat, fundador de Code Barcelona y especialista WordPress con más de 15 años de experiencia.

¿Se cambia algo antes del presupuesto?+

No. Primero se revisan los síntomas visibles y se define el alcance. La intervención empieza tras la aprobación y con una vía de vuelta preparada.

¿Trabajáis con webs en inglés y fuera de España?+

Sí. WP Repair atiende incidencias WordPress y WooCommerce en inglés y español, con servicio remoto.

Evaluar mi incidencia