Jump to content

[Solucionado] Error 500 agregando productos al carrito


Recommended Posts

Hola

 

Estoy desarrollando una librería hace un buen tiempo en prestashop 1.5.5, que es la ultima version que estaba disponible en el momento del inicio del proyecto.

 

La versión de desarrollo inicial está alojada en Godaddy. Y funciona bien. Puedo navegar la página y hacer compras normalmente. Esta versión de desarrollo tiene 150 productos.

http://libreriasiglo.com/libreriasiglocss/prestashop/critica-de-la-cultura/15-gabriel-garcia-marquez-testimonios-sobre-su-vida.html#.U_y4_tSSwWM

 

Por problemas de soporte y de precios en godady y de tamaño de la tienda decidimos migrar a un VPS en inmotion. Y aunque el soporte es bueno no han podido solucionar el error 500 que aparece al añadir el producto al carrtio. En este versión tengo 22mil productos.

http://vps12971.inmotionhosting.com/~librer8/libreriasiglo/home/12209-soledad-de-macondo-o-la-salvacion-por-la-memoria-la.html#.U_y06FFxiZb

 

Que he hecho para arreglar los errores que han aparecido en la migración:

1. De la versión 5.4 de php, bajaron a 5.3.29 que es la que tenia en godaddy

2. Aumentaron memory_limit de 128 a 1024

3. Adiconalmente yo modifique otras variables del php.ini

max_execution_time = 300

max_input_time = -1

max_input_vars = 10000

 

En soporte me dicen que es un modulo el que genera ese error, sin embargo son los mismos archivos y el mismo desarrollo en ambos sitios.

 

El error 500 que aparece ha cambiado de mensaje inicialmente aparecia esto:

Fatal error Allowed memory size of 536870912 bytes exhausted (tried to allocate 523800 bytes) in

/home/librer8/public_html/libreriasiglo/override/classes/Cart.php on line 2488

 

Y luego me reportan esto en el hosting:

[Mon Aug 25 18:59:32 2014] [error] Premature end of script headers: index.php

 

Agradezco muchos sus consejos, comentarios y conocimiento en el tema

Edited by msfblue (see edit history)
Link to comment
Share on other sites

Hola de nuevo,

 

Ayer logré avanzar un poco más con las personas de soporte del hosting y respondieron esto:

 

Hemos sido capaces de identificar un problema en el archivo php.ini estaba causando el error 500 y después de corregirlo no está ocurriendo ya. Por desgracia, el tema de la memoria nos ha eludido. Basado en el mensaje de error una gran cantidad de memoria se solicita por el sitio web al hacer clic en comprar. Tratamos de establecer el límite de memoria de 4 Gb y el error aún persiste, que es mucho más memoria que el sitio web debe necesitar para lo que está haciendo. Lamentablemente puede que tenga que hablar con un desarrollador o el equipo de soporte de su software para determinar por qué se solicita la cantidad de memoria.

 

Es decir que el problema real es de memoria. Como puedo resolverlo ? Alguien tiene alguna idea ?

Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 523800 bytes) in/home/librer8/public_html/libreriasiglo/override/classes/Cart.php on line 2488

 

Nota: este error lo lograron ver cuando desactive el modo ajax del módulo carrito.

 

Gracias.

Edited by msfblue (see edit history)
Link to comment
Share on other sites

Encontré el error !! Y es una bobada realmente. 

 

Primero desactive el override que tenia de la Clase Cart.php.

 

Volví a recargar la pagina, y adicioné un producto al carrito. Hice seguimiento de la linea donde arrojaba error de memoria. 

 

En esa linea se hacia referencia a la función getPackageShippingCost, que calcula el shipping total de la compra. Me di cuenta que se quedaba en un eterno loop. 

 

Entonces procedí a revisar la configuración de transporte, transportistas y del módulo Kahanit Table Rate Shipping, Para mi sorpresa la migración que hicieron en el hosting de la base de datos no quedo con los parámetros correctos en TRANSPORTE. En la opción Transportista por defecto estaba "Envió gratuito" y yo en el sitio original tenia "Mejor Precio". Por lo tanto al ejecutar la carga del producto y querer obtener el shipping entraba en un loop interminable buscando el envió gratuito para los productos (supongo que eso era, no me detuve a ver realmente el código para entender porque el loop ). Debido a que mi tienda tiene configurado los envíos por peso y zona (modulo Kahanit Table Rate Shipping) el algoritmo no encontraba un envió gratis por defecto en los transportistas.

 

Al modificar la opción a "Mejor Precio" ya dejo de aparecer el error.

 

Espero esto le pueda servir a alguien o de pronto a ver de una manera diferente el error. Es la primera vez que hago una migración de prestashop así que bueno estoy aprendiendo.

 

Saludos.

Link to comment
Share on other sites

×
×
  • Create New...