# Documentación – Exportador de Productos WooCommerce --- ## 1. Descripción General Este programa permite exportar productos desde una base de datos WooCommerce (WordPress) hacia un archivo JSON estructurado. El sistema soporta dos modos de operación: * **Modo incremental (48h)**: exporta productos modificados en las últimas 48 horas. * **Modo completo (full)**: exporta todos los productos. El resultado es un archivo JSON estructurado listo para ser consumido por sistemas externos (IA, integraciones, procesos de importación, etc.). --- ## 2. Ubicación y Archivo El script se encuentra en: ```text /public_html/exports/export_products_incremental.php ``` ### URL de ejecución: ```text https://imblasco.cl/exports/export_products_incremental.php ``` --- ## 3. Modos de Ejecución ### 3.1 Modo por defecto (últimas 48 horas) Ejecutar sin parámetros: ```text https://imblasco.cl/exports/export_products_incremental.php ``` **Resultado:** * Exporta productos modificados en las últimas 48 horas. --- ### 3.2 Modo completo (full) Ejecutar con parámetro: ```text https://imblasco.cl/exports/export_products_incremental.php?modo=full ``` **Resultado:** * Exporta todos los productos de la base de datos. --- ## 4. Archivo Generado El sistema genera un único archivo: ```text productos_incremental.json ``` ### Comportamiento: * El archivo **se sobrescribe en cada ejecución** * Siempre contiene el resultado más reciente --- ## 5. Formato del JSON Estructura del archivo: ```json { "sync_timestamp": "2026-04-23T12:00:00", "last_sync_used": "2026-04-21 12:00:00", "last_sync_new": "2026-04-23 11:45:00", "productos": [ { "mysql_id": 123, "tipo": "padre", "titulo": "Producto ejemplo", "sku": "ABC123", "categorias": [], "precios": {}, "stock": {}, "variantes": [] } ] } ``` ### Campos principales: * **sync_timestamp**: fecha de ejecución * **last_sync_used**: fecha utilizada como filtro * **last_sync_new**: última fecha detectada en los productos exportados * **productos**: arreglo con todos los productos --- ## 6. Control de Ejecución (Lock) El sistema utiliza un archivo: ```text export.lock ``` ### Función: * Evita que el script se ejecute en paralelo * Si ya existe un proceso en ejecución, responde: ```text Ya se está ejecutando otro proceso ``` ### Importante: * El archivo siempre existe físicamente * El bloqueo es temporal (no permanente) * No requiere intervención manual --- ## 7. Lógica de Funcionamiento El proceso realiza: 1. Conexión a base de datos MySQL 2. Consulta de productos (`wp_posts`) 3. Filtro por fecha (`post_modified_gmt`) 4. Obtención de: * metadata (`wp_postmeta`) * categorías y términos * imágenes * variantes 5. Procesamiento de: * precios * stock * atributos * características (incluyendo parsing HTML) 6. Generación del JSON final --- ## 8. Condición de Escritura El archivo JSON solo se genera si existen productos: * Si hay resultados: ``` EXPORT OK - X productos actualizados ``` * Si no hay resultados: ``` NO HAY CAMBIOS ``` --- ## 9. Consideraciones Técnicas * Límite de consulta: **5000 productos por ejecución** * El sistema usa múltiples consultas por producto (puede impactar rendimiento) * Se parsea HTML mediante expresiones regulares (requiere estructura consistente) --- ## 10. Uso Recomendado * Usar modo **48h** para operación normal * Usar modo **full** solo para: * sincronización completa * debugging * reconstrucción de datos --- ## 11. Notas * No se genera formato alternativo (flat eliminado) * No se mantiene historial de exportaciones * El archivo siempre representa el estado más reciente --- ## 12. Conclusión El sistema permite exportar productos WooCommerce de forma eficiente mediante: * filtrado por fecha * formato JSON consistente * control de concurrencia ---