WooCommerce / Pedidos
Pedidos de WooCommerce que no aparecen o son incorrectos
Respuesta corta
La mayoría de los pedidos «perdidos» existen en un estado que no estás mirando, nunca los completó el cliente o fallaron tras el pago. Busca por el email del cliente en todos los estados y en la papelera, y después revisa el proveedor de pagos. Los totales incorrectos suelen venir de los ajustes de impuestos y redondeo, cargos, cupones, plugins de divisas o un pedido recalculado en la administración. Los datos que no coinciden entre pantallas suelen apuntar a la sincronización del almacenamiento de pedidos (HPOS) o a datos de Análisis que no se han importado.
Síntomas
- Un cliente tiene una confirmación o un cobro, pero el pedido no está en la administración.
- Hay pedidos en los emails o en el proveedor de pagos que no aparecen en la lista de pedidos, o al revés.
- Los totales de los pedidos no coinciden con lo que pagó el cliente, o difieren en pequeños redondeos.
- Los pedidos se quedan en Pendiente de pago, En espera o Procesando cuando deberían haber avanzado.
- La lista de pedidos, las exportaciones, Análisis y las integraciones muestran cifras distintas.
Causas más comunes
Pedidos que parecen haber desaparecido
- Filtros de estado y papelera. La lista por defecto oculta los pedidos en la papelera, y los filtros guardados ocultan otros.
- El cliente nunca completó el pedido. Abandonó la página de pago, así que el pedido se quedó pendiente y se canceló al terminar el tiempo de reserva de stock; o, con el bloque de Checkout, nunca salió del estado de borrador.
- El pago se completó pero el pedido falló: consulta pago fallido pero al cliente se le ha cobrado.
- El pedido se hizo en otro sitio: una copia de staging conectada a las claves reales de la pasarela, otra tienda o con otra dirección de email.
- Almacenamiento de pedidos: tras activar HPOS sin sincronización, el código o las herramientas que siguen leyendo las tablas antiguas no ven los pedidos nuevos.
- Automatizaciones que borran, fusionan o mueven pedidos: plugins de limpieza, sincronizaciones con el ERP, código a medida.
Pedidos con datos incorrectos
- Ajustes de impuestos y redondeo: precios introducidos con o sin impuestos, redondeo por línea o en el subtotal, número de decimales.
- Cargos y cupones aplicados en un orden inesperado, o código de cargos a medida.
- Plugins de divisas y de precios que cambian los precios en momentos distintos del checkout.
- Recálculo en la administración con los tipos de impuestos actuales.
- Código a medida que escribe meta del pedido directamente, sobre todo mediante
update_post_meta()en tiendas que usan HPOS.
Diagnóstico
1. Busca bien antes de dar nada por perdido
Busca por número de pedido, email del cliente y nombre, en Todos los estados y después en la papelera. Si tu tienda usa el bloque de Checkout, recuerda que los pedidos en borrador no aparecen como pedidos normales.
2. Revisa el proveedor de pagos
Para un cliente que asegura haber pagado, busca la transacción. Sin transacción, no hay pago completado. Una transacción correcta sin pedido pagado es un fallo en el traspaso del pago.
3. Lee las notas del pedido
Las notas del pedido registran cada cambio de estado con su hora: confirmaciones de pago, mensajes de la pasarela, cancelaciones automáticas y muchas acciones de plugins. La última nota antes de que el pedido fuera mal suele indicar la causa.
4. Revisa el almacenamiento de pedidos
En WooCommerce → Ajustes → Avanzado → Características, mira si el almacenamiento principal es HPOS o el antiguo de entradas, y si el modo de compatibilidad los mantiene sincronizados. Si hay pedidos en un almacenamiento y no en el otro, busca sincronizaciones pendientes y código que lea el almacenamiento equivocado.
5. Compara los totales línea a línea
Para un total incorrecto, recalcula el pedido a partir de sus artículos: subtotales de línea, impuestos de línea, descuentos, cargos, envío e impuestos del envío. Compáralo con los ajustes de impuestos (WooCommerce → Ajustes → Impuestos) tal como estaban cuando se hizo el pedido.
Registros y comprobaciones técnicas
- Notas del pedido e historial de emails del cliente.
- Transacciones del proveedor de pagos en el periodo.
- WooCommerce → Estado → Registros:
fatal-errorsy el registro de la pasarela alrededor de la hora del pedido. - Herramientas → Acciones programadas: acciones fallidas relacionadas con pedidos, emails o sincronizaciones.
- Ajustes de almacenamiento de pedidos y estado de la sincronización.
- Comprobaciones de solo lectura en la base de datos, sobre una copia, cuando la administración y los datos no coinciden.
Soluciones
- Arregla primero la causa: el traspaso del pago, el hook que falla, la automatización de limpieza o la sincronización del almacenamiento.
- Recupera los pedidos a partir de las evidencias: registros del proveedor de pagos, emails y notas de pedido. Recréalos mediante WooCommerce, no con SQL.
- Corrige los ajustes de impuestos y redondeo para los pedidos futuros; para los pasados, decide caso por caso con tu asesor si se ajustan o se documentan.
- Reescribe el código a medida que escribe pedidos mediante meta de entradas para que use la API CRUD de pedidos.
- Vuelve a lanzar la importación de Análisis para el periodo afectado si solo fallan los informes.
Qué no hacer
- No crees pedidos duplicados a mano antes de saber si el original existe.
- No ejecutes consultas
UPDATEoDELETEsobre las tablas de pedidos para «arreglar» datos, sobre todo con HPOS y la sincronización activadas. - No pulses Recalcular en pedidos antiguos sin comprobar qué tipos de impuestos se aplicarán.
- No instales un segundo plugin de limpieza o sincronización para arreglar el primero.
Cuándo recurrir a un experto
Recurre a un ingeniero cuando los pedidos desaparecen sin rastro en notas ni registros, cuando la lista de pedidos y la base de datos no coinciden, cuando hay una sincronización HPOS de por medio, o cuando hay muchos pedidos que cuadrar con los pagos.
Problemas relacionados
- WooCommerce / Pagos WooCommerce: el pago falla pero al cliente se le ha cobrado Cuando la pasarela cobra el pago pero el pedido se queda pendiente o fallido, revisa el traspaso de callbacks y webhooks antes de tocar el pedido.
- WooCommerce / HPOS HPOS en WooCommerce: problemas habituales con código personalizado Consultas directas a wp_posts, get_post_meta() sobre pedidos y otro código que falla en silencio cuando los pedidos pasan a sus propias tablas.
- WooCommerce / Rendimiento Problemas con Action Scheduler en WooCommerce Acciones programadas vencidas, fallidas y atascadas: cómo funciona la cola, por qué se detiene y cómo arreglarlo sin perder trabajo pendiente.
- WooCommerce / Checkout El checkout de WooCommerce no funciona: cómo diagnosticar la causa raíz Determina primero si el fallo ocurre antes de la petición del checkout, durante ella o después de la respuesta de la pasarela. El panel de red y los registros PHP suelen revelar qué capa falla.
Preguntas frecuentes
¿Por qué no veo un pedido que el cliente dice haber hecho?
Revisa todos los estados, incluidos Pendiente de pago y Fallido, la papelera, y busca por el email del cliente. Si no hay pedido, revisa el proveedor de pagos: puede que el cliente abandonara el pago o que pagara mientras el pedido fallaba.
¿Qué son los pedidos en borrador del checkout?
El bloque de Checkout crea un pedido en borrador mientras el cliente está en la página de checkout. Se convierte en un pedido real cuando el cliente lo realiza; los borradores abandonados no son pedidos reales y se limpian automáticamente.
¿Por qué los totales de Análisis de WooCommerce no coinciden con la lista de pedidos?
Análisis lee sus propias tablas de consulta y excluye algunos estados por defecto. Si los datos históricos nunca se importaron, o la importación se detuvo, los informes estarán incompletos. Revisa en Análisis → Ajustes los estados excluidos y la importación de datos históricos.
¿Por qué cambió el total del pedido después de editarlo?
Pulsar Recalcular en el editor de pedidos vuelve a calcular impuestos y totales con los tipos y ajustes actuales, que pueden ser distintos de los del momento de la compra.