# Guía de Actualización: Lazy Loading v18.0.1.3.0 **Fecha**: 16 de febrero de 2026 **Versión**: 18.0.1.3.0 **Cambios Principales**: Lazy loading configurable de productos ## 📋 Resumen de Cambios La tienda de Aplicoop ahora carga productos bajo demanda en lugar de cargar todos a la vez. Esto reduce dramáticamente el tiempo de carga de la página inicial (de 10-20 segundos a 500-800ms). ## 🔄 Pasos de Actualización ### 1. Descargar Cambios ```bash cd /home/snt/Documentos/lab/odoo/addons-cm git pull origin main # o tu rama correspondiente ``` ### 2. Actualizar Addon en Odoo ```bash # En Docker docker-compose exec odoo odoo -d odoo -u website_sale_aplicoop --stop-after-init # O sin Docker ./odoo-bin -d odoo -u website_sale_aplicoop --stop-after-init ``` ### 3. Activar Lazy Loading (Recomendado) ``` Settings → Website → Shop Performance [✓] Enable Lazy Loading [20] Products Per Page Click: "Save" ``` ## ⚙️ Configuración ### Opción A: Lazy Loading Habilitado (Recomendado) ``` Enable Lazy Loading: ✓ (checked) Products Per Page: 20 ``` **Resultado**: Página carga rápido, botón "Load More" visible ### Opción B: Lazy Loading Deshabilitado (Compatibilidad) ``` Enable Lazy Loading: ☐ (unchecked) Products Per Page: 20 (ignorado) ``` **Resultado**: Carga TODOS los productos como antes (no hay cambios visibles) ### Opción C: Ajuste de Cantidad ``` Products Per Page: 50 (o el valor que desees) ``` **Valores recomendados**: 15-30 **No recomendado**: <5 (muchas páginas) o >100 (lento) ## ✅ Validación Post-Actualización ### 1. Verificar Lazy Loading Activo 1. Ir a `/eskaera/` en tienda 2. Verificar que carga rápido (~500ms) 3. Buscar botón "Load More" al final 4. Producto debe tener ~20 items inicialmente ### 2. Verificar Funcionamiento 1. Click en "Load More" 2. Spinner debe aparecer ("Loading...") 3. Nuevos productos se agregan al grid 4. Botón +/- y agregar al carrito funciona en nuevos productos ### 3. Verificar Compatibilidad 1. Búsqueda (realtime-search) debe funcionar en página 1 2. Carrito debe estar sincronizado 3. Checkout debe funcionar normalmente 4. Notificaciones de carrito deben actualizarse ### 4. Verificar Logs ```bash # En Docker docker-compose logs -f odoo | grep -i "lazy_loading\|eskaera_shop" # Debería ver: # [LAZY_LOADING] Attaching load-more-btn listener # [LAZY_LOADING] Loading page 2 for order 1 # [LAZY_LOADING] Products inserted into grid ``` ## 🐛 Troubleshooting ### Problema: Botón "Load More" no aparece **Causa**: Lazy loading está deshabilitado o hay <20 productos **Solución**: 1. Settings → Website → Shop Performance 2. Verificar "Enable Lazy Loading" está ✓ 3. Asegurarse que hay >20 productos en orden ### Problema: Botón no funciona (error AJAX) **Causa**: Ruta `/eskaera//load-page` no funciona **Solución**: 1. Verificar que addon está actualizado: `odoo -u website_sale_aplicoop` 2. Revisar logs: `docker logs -f odoo | grep load-page` 3. Verificar que grupo tiene >20 productos ### Problema: Event listeners no funcionan en nuevos productos **Causa**: No se re-atacharon los listeners **Solución**: 1. Abrir console JS (F12) 2. Ver si hay errores en "Load More" 3. Verificar que `_attachEventListeners()` se ejecuta 4. Clear cache del navegador (Ctrl+Shift+Delete) ### Problema: Precios incorrectos al cargar más **Causa**: Cambio en pricelist entre cargas **Solución**: Sin validación de precios (no cambian frecuentemente). Si cambiaron: 1. Recargar página (no solo Load More) 2. O deshabilitar lazy loading ## 📊 Verificación de Performance ### Método: Usar Developer Tools (F12) 1. **Abrir Network tab** 2. **Recargar página completa** 3. **Buscar request a `/eskaera/`** 4. **Timing debería ser**: - Antes de cambios: 10-20s - Después de cambios: 500-800ms 5. **Click en "Load More"** 6. **Buscar request a `/eskaera//load-page`** 7. **Timing debería ser**: 200-400ms ## 🔙 Rollback (Si Necesario) Si hay problemas críticos: ```bash # Desactivar lazy loading (opción rápida) Settings → Website → Shop Performance ☐ Disable Lazy Loading Click: Save ``` O revertir código: ```bash git revert odoo -u website_sale_aplicoop --stop-after-init ``` ## 📝 Notas Importantes 1. **Sin validación de precios**: No se revalidan precios al cargar nuevas páginas. Asumir que no cambian frecuentemente. 2. **Búsqueda local**: La búsqueda realtime busca en DOM actual (20 productos). Para buscar en TODOS, refrescar página. 3. **Sin cambio de URL**: Las páginas no cambian la URL a `?page=2`. Todo es transparente vía AJAX. 4. **Carrito sincronizado**: El carrito funciona normalmente, se guarda en localStorage y sincroniza entre páginas. 5. **Traducciones**: Las etiquetas del botón "Load More" se traducen automáticamente desde `i18nManager`. ## 📚 Documentación Adicional - **Guía completa**: `docs/LAZY_LOADING.md` - **Changelog**: `website_sale_aplicoop/CHANGELOG.md` - **README**: `website_sale_aplicoop/README.md` ## 📞 Soporte Para problemas: 1. Revisar `docs/LAZY_LOADING.md` sección "Troubleshooting" 2. Revisar logs: `docker-compose logs odoo | grep -i lazy` 3. Limpiar cache: Ctrl+Shift+Delete en navegador 4. Recargar addon: `odoo -u website_sale_aplicoop` --- **Actualización completada**: 16 de febrero de 2026 **Versión instalada**: 18.0.1.3.0