Si tu tienda tiene miles de productos, pedidos o clientes, una exportación que funciona bien en un catálogo pequeño puede detenerse, agotar el tiempo de espera o finalizar sin ningún archivo en uno más grande. Rara vez es un fallo del propio Store Exporter Deluxe. Casi siempre es que tu servidor se está quedando sin la memoria PHP o el tiempo de ejecución que se le permite para una sola solicitud.
Quick Export ya divide cada exportación en lotes, por lo que no intenta procesar todo tu catálogo de una vez. Aun así, una tienda lo suficientemente grande puede necesitar un poco más de margen PHP, y ayuda saber dónde buscar cuando una exportación no finaliza. Este artículo cubre cómo funciona la división en lotes, qué configuraciones de PHP son las más importantes y cómo usar el Registro de auditoría y los registros de WooCommerce para averiguar por qué se detuvo una exportación.
Prerrequisitos
| Requisito | Detalles |
|---|---|
| Complemento | Store Exporter Deluxe está activo y tiene licencia |
| WooCommerce | Activo, ya que las exportaciones extraen sus datos de tu tienda WooCommerce |
| Acceso al hosting | Capacidad para cambiar tu memory_limit y max_execution_time de PHP, o un host al que puedas pedir que los aumente |
| Acceso de administrador | Una cuenta con acceso al panel de administración de WordPress |
Cómo funciona la división en lotes
Quick Export nunca carga todo tu catálogo en memoria a la vez. En su lugar, divide los registros que estás exportando en lotes de 100 por defecto, y luego procesa un lote por solicitud. Así, una exportación de 5.000 productos se ejecuta como 50 lotes separados en lugar de una consulta enorme, lo que mantiene el uso de memoria predecible sin importar cuán grande crezca tu tienda. El progreso de cada lote se guarda a medida que se completa, por lo que si estás observando una ejecución de Quick Export, la barra de progreso que ves aumenta un lote a la vez en lugar de esperar a que finalice toda la exportación antes de mostrar algo. Las Exportaciones Programadas funcionan de manera diferente. Consulta La exportación programada no es una solución para errores de memoria o límite de tiempo a continuación.
Configuraciones de PHP recomendadas para exportaciones grandes
Quick Export: Cada lote de Quick Export es su propia solicitud, y cada lote se ejecuta bajo el memory_limit y max_execution_time normales de PHP de tu servidor. El plugin no aumenta estos límites para un lote, y la configuración de Script Timeout no los cambia. Por lo tanto, para Quick Export, las dos cosas que ayudan son un Tamaño de lote más pequeño (abajo) y límites de PHP más altos en tu host. Si las exportaciones se detienen con errores de memoria, o se detienen consistentemente después de aproximadamente la misma cantidad de tiempo, pídele a tu host que aumente memory_limit y max_execution_time en la configuración de PHP de tu servidor.
Exportaciones programadas: Cuando una Exportación programada se inicia, Store Exporter Deluxe pide a PHP que aumente su límite de memoria a WP_MAX_MEMORY_LIMIT de su sitio y aplica la configuración de Tiempo de espera de script como límite de tiempo de ejecución. WordPress establece WP_MAX_MEMORY_LIMIT en 256 MB por defecto, muy por encima del mínimo del plugin de 64 MB. Dicho esto, muchos hosts bloquean estas anulaciones en tiempo de ejecución y aplican sus propios límites estrictos independientemente de lo que solicite el plugin. Si una Exportación programada grande aún se detiene, pida a su host que aumente memory_limit y max_execution_time directamente en la configuración PHP de su servidor.
Tiempo de espera de script: Verifique Ajustes → General → Tiempo de espera de script antes de una Exportación programada grande. Viene por defecto como Ilimitado. Si se ha cambiado a 10 minutos, 30 minutos o 1 hora, una Exportación programada que se ejecuta más tiempo se detiene al alcanzar ese límite. Restablezca a Ilimitado antes de ejecutar una Exportación programada grande. Esta configuración no afecta a los lotes de Exportación rápida.
Ajuste del tamaño del lote para exportaciones muy grandes
- Abre WooCommerce → Store Export desde el menú de administración de WordPress.
- Haga clic en Exportación rápida en la barra lateral.
- En el paso Seleccionar tipo de exportación, elija qué desea exportar.
- Continúe a través de Campos de exportación (y Filtros y ordenación, si aparece para ese tipo) para llegar al paso Opciones de exportación.
- En Configuración de lotes, introduzca un número en el campo Tamaño del lote. Está vacío por defecto, lo que utiliza el valor incorporado del plugin de 100 registros por lote.
Reducir el Tamaño del lote (por ejemplo, a 25 o 50) hace que cada solicitud de lote individual sea más ligera en memoria y más rápida de finalizar, lo que ayuda en un servidor con un memory_limit o max_execution_time bajo. La contrapartida es un mayor número de lotes en general, por lo que la exportación completa requiere más solicitudes para completarse. No hay un mínimo fijo, por lo que vale la pena probar un valor más pequeño si sus exportaciones de tamaño predeterminado son las que agotan el tiempo de espera.

Uso del registro de auditoría para comprobar una exportación grande
Store Exporter Deluxe mantiene un registro de cada ejecución de exportación en su Registro de auditoría, disponible en la barra lateral en WooCommerce → Exportación de tienda. Cada entrada muestra el tipo de exportación, qué la desencadenó, su estado y las marcas de tiempo.

Haga clic en una entrada para expandirla. Si la ejecución muestra Fallida, la vista expandida incluye el mensaje de error.

Un error de memoria o de tiempo de espera funciona de manera diferente. Cuando PHP se queda sin memoria o tiempo, detiene la exportación de inmediato, antes de que el plugin pueda registrar nada. La entrada permanece en En ejecución sin ningún mensaje de error. Para confirmar lo que sucedió, ve a WooCommerce → Estado → Registros y busca un registro con la fuente errores-fatales, o pide a tu proveedor de alojamiento el registro de errores de PHP.
El Registro de auditoría está activado por defecto. Si falta en tu barra lateral, alguien ha desactivado el interruptor Activar registro de auditoría en Ajustes → Registro de auditoría.
Esa misma sección Ajustes → Registro de auditoría también controla cuántos detalles captura cada entrada, configurado por separado para Exportaciones rápidas y Exportaciones programadas. El nivel predeterminado Estándar ya registra la Duración. Cambia una fuente a Detallado para capturar también el Uso máximo de memoria.

Esto vale la pena activarlo mientras optimizas una exportación grande, ya que te dice qué tan cerca estuvo cada ejecución completada de tu memory_limit y cuánto tiempo tomó. Eso te muestra cuánto margen queda antes de que una exportación más grande alcance el límite.

La exportación programada no es una solución para errores de memoria o de tiempo de espera.
Una exportación programada no agrupa registros como lo hace la exportación rápida. Procesa todo el conjunto de datos como un único trabajo en segundo plano a través de Action Scheduler. El plugin solicita más memoria a PHP y aplica Tiempo de espera de script cuando comienza la ejecución, pero si tu proveedor de alojamiento bloquea esas anulaciones, el trabajo aún se ejecuta bajo los límites de tu proveedor. Como un trabajo no agrupado, típicamente necesita más memoria que una exportación rápida agrupada, no menos. No hay campo de Tamaño de lote en el formulario de Exportación programada porque no hay nada que agrupar.
Lo que una exportación programada evita es la dependencia de la pestaña del navegador: dado que se ejecuta como un trabajo en segundo plano, no está ligada a que la pestaña de tu navegador permanezca abierta ni a cuánto tiempo se permite que se ejecute una solicitud de página en tu navegador. Si una exportación rápida se detiene porque no puedes mantener la pestaña abierta el tiempo suficiente, una exportación programada resuelve ese problema específico. Si se detiene por memoria o tiempo de ejecución, reduce el Tamaño del lote o aumenta tus límites de PHP en su lugar. Para obtener instrucciones detalladas, consulta Cómo programar exportaciones en Store Exporter Deluxe.
Solución de problemas
memory_limit o max_execution_time a mitad de lote. En ese caso, la entrada correspondiente del Registro de auditoría permanece en En ejecución sin mensaje de error, porque PHP se detiene antes de que el plugin pueda registrar uno. Para confirmarlo, ve a WooCommerce → Estado → Registros y abre el registro con la fuente errores-fatales, o pide a tu proveedor que te proporcione el registro de errores de PHP. Una línea que comience con “Allowed memory size of” o “Maximum execution time of” lo confirma. Si la entrada muestra Fallido en su lugar, expándela para leer el mensaje de error.Si se trataba de una Exportación Rápida, antes de volver a intentarlo, ve a Ajustes → Avanzado, busca Borrar transitorio de exportación en Mantenimiento y haz clic en Borrar. Si omites este paso, la próxima Exportación Rápida mostrará “Ya se está ejecutando una exportación” durante un máximo de 30 minutos. Luego reduce el Tamaño de lote e inténtalo de nuevo. Cada lote se ejecuta bajo los límites de PHP de tu servidor, así que pide a tu proveedor que aumente ambas configuraciones de PHP si el problema continúa. Si esto sucede en una Exportación Programada, también verifica que Ajustes → General → Tiempo de espera de script esté configurado en Ilimitado.
memory_limit y max_execution_time en el servidor.Preguntas Frecuentes
memory_limit y max_execution_time de su host, sin una configuración de Tamaño de Lote a la que recurrir. Una Exportación Programada puede ser en realidad más propensa a agotar el tiempo de espera en un catálogo muy grande que una Exportación Rápida con un tamaño de lote pequeño.Artículos relacionados
¿Necesitas más ayuda?
Si está utilizando Store Exporter Deluxe y una exportación grande aún no se completa después de probar los pasos anteriores, abra un ticket de soporte y nuestro equipo le ayudará a ponerlo en marcha.
Si estás usando el plugin gratuito Store Exporter, pregunta en el foro de soporte de WordPress.org y nuestro equipo te responderá allí.

