venta · sync · hostingLa sincronización de ventas desde ChessERP puede traer 8.000–22.000 filas por mes, divididas en 3–15 lotes de 200–2000 filas cada uno. El sync completo toma 25–40 segundos.
Hostinger shared hosting mata HTTP largas a los ~4 minutos aunque PHP tenga
set_time_limit(0). Esto rompía syncs grandes que excedían el límite.
JS orquesta el sync con un loop de POSTs a sync_api_process.php:
POST action=init → INSERT sincronizaciones, devuelve sync_id
LOOP:
POST action=lote → fetch + INSERT lote (2-15s)
Until {finalizado: true}
POST action=finalizar → UPDATE estado='completado'
✅ Funciona perfecto con Hostinger.
✅ Permite resume mode (saltea lotes completados).
✅ UI muestra progreso real.
⚠️ Si el browser cierra a mitad, sync queda en procesando (se retoma con ?resume=1).
venta/sync_api_process.php
venta/reinit_import.php
(modo masivo + resume)