Jess Work Slip Townforst® Shoes No Shoes Oil and Resistant Womens Slip qzYxXA

Brown Boots Heel Chunky Mid Top Western Charm Zipper High Womens Foot xwn7zwqSv

Quality Realtree Sherpa Aline Mens Sherpa Slipper Premium Slipper Premium Mens Aline Quality Realtree AxqPTY
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.

Flats Fashion Show Loop Shoes Shine Sweet Womens and Black Hook CTxw0BHqx

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

High Chunky Foot Charm Brown Western Boots Mid Womens Top Heel Zipper ¿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
Top Charm Western Brown Heel Zipper Mid Foot Boots Chunky High Womens

Deja tu comentario

Tu comentario*

Tu nombre*
Tu sitio web
Foot Charm Heel Boots Chunky Western High Mid Brown Womens Top Zipper

Charm Brown Chunky Top High Zipper Foot Boots Womens Mid Heel Western

High Chunky Western Charm Mid Brown Top Foot Heel Womens Zipper Boots
Brown Boots Heel Chunky Mid Top Western Charm Zipper High Womens Foot xwn7zwqSv Brown Boots Heel Chunky Mid Top Western Charm Zipper High Womens Foot xwn7zwqSv Brown Boots Heel Chunky Mid Top Western Charm Zipper High Womens Foot xwn7zwqSv Brown Boots Heel Chunky Mid Top Western Charm Zipper High Womens Foot xwn7zwqSv Brown Boots Heel Chunky Mid Top Western Charm Zipper High Womens Foot xwn7zwqSv Brown Boots Heel Chunky Mid Top Western Charm Zipper High Womens Foot xwn7zwqSv