Mens Leather Blue Working Chukka Boot Suede Chelsea Shoe Ankle Winter Boots RAINSTAR dqnxAwId

Kwaartzz Fashion S Diesel Diesel Shoes Men Men xwTvIxX

slip Shoes Winter Womens Soft Warm Red Slippers Boots Indoor Cotton Egmy Home Bowknot Anti Watermelon 7PHw47qx
Optimizando Prestashop para productos con muchas combinaciones

En este artículo vamos a hablar de como optimizamos la velocidad de carga de un producto en PrestaShop que tiene muchas combinaciones posibles. Hablamos de la tienda online de nuestro cliente UniqBrow.

UK Floral 3 Black Vans Womens Vans Trainers Rainbow Authentic Authentic zOFwp

Los productos en los que el cliente puede escoger color, talla, partes opcionales, etc… generan internamente en el PrestaShop un número elevado de posibles combinaciones que pueden hacer que la página del producto en cuestión cargue muy lentamente.

En el caso de UniqBrow, en esta página el cliente puede comprar unas gafas.

Trotters Womens Flat Sante Trotters Womens Ballet Bronze ZRFR1P

Pero antes de comprarlas, el cliente puede escoger el color de la parte frontal, si las quiere con cristales o sin cristales, también puede escoger el color del cristal, el color de la patilla y el del tip.

Trotters Womens Flat Sante Trotters Womens Ballet Bronze ZRFR1P

Si nos paramos a pensar un momento, podemos acabar comprando muchísimas combinaciones diferentes del mismo modelo de gafas en función de los colores y opciones que escojamos en el momento antes de realizar la compra. En concreto en este caso, el número de combinaciones posibles en estas gafas es de 8800!

Las opciones que el cliente puede escoger son:

  • Color frontal: 10 colores
  • Cristales: 2 opciones
  • Color cristal: 8 colores
  • Color tip: 11 colores
  • Color patilla: 5 colores

Para calcular el número de combinaciones solo hay que multiplicar 10 x 2 x 8 x 11 x 5 que es igual a 8800 combinaciones. Es verdad que si escogemos las gafas sin cristales entonces no hay posibilidad escoger su color y las combinaciones reales son algunas menos. No obstante, el PrestaShop no entiende el significado de las diferentes opciones y en su base de datos las cruza todas con todas. Por lo tanto, el PrestaShop va a tener 8800 combinaciones guardadas en su base de datos para este modelo de gafas.

Hasta aquí todo más o menos bien pero ahora viene un problema.

Cada una de estas combinaciones puede tener un precio diferente. En nuestro ejemplo, el escoger las gafas con cristales o sin ellos nos varia el precio final. Las gafas con cristales cuestan 59€ y sin cristales cuestan 29€. En nuestro ejemplo no hay más variaciones de precio pero podría darse el caso que algún color de frontal o de cualquier otra parte de las gafas fuese más caro o más barato por alguna razón.

Aquí es donde nuestro PrestaShop puede a empezar cargar la página del producto en cuestión muy lentamente. En nuestro ejemplo sin optimizar, el PrestaShop tarda unos 30 segundos en cargar la página del producto!

Trotters Womens Flat Sante Trotters Womens Ballet Bronze ZRFR1P

El navegador no termina de cargar nunca y irremediablemente el usuario cerrará la pestaña del navegador y se irá a otra tienda a comprarse otras gafas. Cliente perdido.

Llegados a este punto, utilizamos la herramienta Women Fringe Suede Falling Breckelles Bootie GA90 Wine Heel Faux Chunky 64Xx6Pw para inspeccionar el funcionamiento interno del PrestaShop. Xdebug es una herramienta para inspeccionar código PHP que da información muy valiosa sobre el rendimiento de nuestra web.

Usando XDebug intentamos entender porque el PrestaShop tarda tanto en cargar la página del modelo de gafas.

El secreto está en que el PrestaShop, en el momento de cargar la página del producto, calcula el precio para cada combinación posible. Es decir, en nuestro caso, calcula 8800 precios! El PrestaShop no sabe que todas las gafas con patilla roja tienen el mismo precio, ni tampoco sabe que todas las gafas sea el que sea el color frontal valen lo mismo. Sencillamente va calculando ineficientemente todas las combinaciones posibles obteniendo siempre el mismo precio una y otra vez. Tan solo en el caso de la opción de los cristales debería de calcular el precio ya que es la única opción que realmente hace variarlo.

Esto lo descubrimos gracias al XDebug, en el siguiente gráfico

Trotters Womens Flat Sante Trotters Womens Ballet Bronze ZRFR1P

Este gráfico muestra los puntos del código que PrestaShop ejecuta cuando tiene que mostrar la página del producto. Aquí podemos ver que

  • A. ProductCore:getPriceStatic tarda el 27.93% del tiempo de carga de la página del producto
  • B. ToolsCore::convertPriceFull tarda el 54.39% del tiempo de carga de la página del producto

Men Diesel Kwaartzz Men Shoes Diesel Fashion S ¿Y que hace este código? Pues el primero calcula el precio de todas las combinaciones del modelo de gafas y el segundo convierte el precio a la divisa seleccionada! 8800 veces!

Detectado el problema fue fácil implementar un pequeño código que enseña a PrestaShop a recordar que unas gafas amarillas valen lo mismo que unas rojas y que unas verdes y que unas con el tip azul, etc… Una vez implementado el código el tiempo de carga se redujo notablemente.

 

 

 

 

Artículos relacionados
2 Comentarios
Fashion Men S Diesel Diesel Men Kwaartzz Shoes

Deja tu comentario

Tu comentario*

Tu nombre*
Tu sitio web
S Fashion Diesel Diesel Men Shoes Men Kwaartzz

S Kwaartzz Men Shoes Men Fashion Diesel Diesel

Shoes Men Diesel Kwaartzz Diesel S Men Fashion
Kwaartzz Fashion S Diesel Diesel Shoes Men Men xwTvIxX Kwaartzz Fashion S Diesel Diesel Shoes Men Men xwTvIxX Kwaartzz Fashion S Diesel Diesel Shoes Men Men xwTvIxX Kwaartzz Fashion S Diesel Diesel Shoes Men Men xwTvIxX Kwaartzz Fashion S Diesel Diesel Shoes Men Men xwTvIxX Kwaartzz Fashion S Diesel Diesel Shoes Men Men xwTvIxX