Cuando las combinaciones de PrestaShop matan el rendimiento: límites y soluciones

433 vistas

Cuando las combinaciones de PrestaShop matan el rendimiento: limites y soluciones

El sistema de combinaciones de PrestaShop permite crear variantes de producto. Funciona perfectamente para productos con pocas variantes. Pero cuando los productos tienen cientos o miles de combinaciones, el rendimiento se degrada dramaticamente.

Por que las combinaciones causan problemas de rendimiento

Arquitectura de la base de datos

PrestaShop almacena datos de combinaciones en multiples tablas: ps_product_attribute, ps_product_attribute_combination, ps_stock_available, ps_specific_price. Un producto con 5 tallas y 10 colores crea 50 combinaciones con mas de 350 filas en la base de datos.

El problema del crecimiento exponencial

AtributosValoresCombinacionesFilas BD
25 x 525~175
310 x 15 x 81.200~8.400
410 x 15 x 8 x 56.000~42.000

Limites practicos

CantidadFront OfficeBack OfficeVeredicto
1-50RapidoRapidoSin problemas
50-200AceptableAceptableManejable
200-500Lento (3-8s)LentoOptimizacion necesaria
500-1000Muy lentoMuy lentoConsiderar reestructuracion
1000+InutilizableA menudo fallaReestructuracion requerida

Solucion 1 - Reestructurar el catalogo

En lugar de un producto con 50 combinaciones, crear productos separados por color con 5 combinaciones cada uno. Mas rapido y mejor para SEO.

Solucion 2 - Optimizacion de base de datos y servidor

ALTER TABLE ps_product_attribute 
  ADD INDEX idx_product_default (id_product, default_on);

ALTER TABLE ps_stock_available 
  ADD INDEX idx_product_attribute (id_product, id_product_attribute);

Solucion 3 - Carga progresiva de combinaciones

En lugar de cargar todas las combinaciones al cargar la pagina, obtener datos via AJAX cuando el cliente selecciona un atributo.

Solucion 4 - Estrategias de cache

Cache de pagina completa (Varnish, LiteSpeed) para paginas de producto. Redis o Memcached para cache de objetos.

Cuando evitar las combinaciones completamente

  • Productos configurables con 4+ atributos - Modulo configurador de producto
  • Productos dimensionales - Modulo de dimensiones personalizadas
  • Productos print-on-demand - Modulo disenador de producto

Recomendaciones por cantidad de combinaciones

CantidadAccion recomendada
Menos de 100Ninguna accion necesaria
100-300Indices BD, OPcache, Redis
300-1000Dividir productos, indices, lazy loading
Mas de 1000Reestructurar catalogo, modulo configurador

¿Le resultó útil esta respuesta?

¿Aún tiene preguntas?

Can't find what you're looking for? Send us your question and we'll get back to you quickly.

Cargando...
Volver arriba