Alguna vez me he encontrado con otro problema con Prestashop y jQuery que creo que merece la pena dejar aquí publicado para no olvidarme de el (en caso de volver a encontrármelo). El error del que voy a hablar puede venir dado por más de una posibilidad, pero aquí solo hablaré de cómo he solucionado este problema en una web concreta, pero por probar no perdéis nada ya que si no funciona tan solo habrá que dejar las cosas como estaban.
ReferenceError: jQuery is not defined
El caso es que cuando en Prestashop activas CCC (Combinación, Compresión y Cache) en la opción «Rendimiento» para mejorar un poco de todo en este tipo de tiendas, te puedes encontrar con que jQuery deja de funcionar al aplicar el Smart Caché en JavaScript y si pulsas Ctrl+shift+j verás que la consola te dice ReferenceError: jQuery is not defined.
En mi caso diré que este error vino dado cuando probando algunas cosas con jQuery, que en principio me había pedido el cliente de turno, tuve que probar a utilizar una versión posterior a la que por defecto utiliza Prestashop, y de ahí vino mi error. Tuve que utilizar la versión 1.11.0 de Jquery.min cuando ese Prestashop utilizaba la 1.7.0. Cuando el cliente dijo que no quería cargar la web con el plugin «maravilloso» que había programado para él, simplemente lo desinstalé y me olvidé del tema hasta que quise activar la CCC. En este momento fue cuando descubrí el error de jQuery, ya que al cargar la home de la tienda, jQuery no hacía nada de nada a pesar de ser llamado correctamente en el lugar indicado.
Como ya me había olvidado del tema hasta que descubrí el problema, diré que tuve que volver a buscar la solución y me encontré con la solución (que yo mismo había publicado en unos foros dedicados a este tipo de tiendas). Para solucionar el problema, tan solo tendremos que asegurarnos que el archivo defines.inc.php se encuentra en la siguiente ruta:
/config/defines.inc.php
Una vez localizado el archivo, tan solo tendremos que editarlo y dentro buscar PS_JQUERY_VERSION lo que nos llevará (en mi caso al final del archivo) al siguiente código…
Como se puede ver en la imagen aparecerá una versión de jQuery. Tendremos que asegurarnos de que la versión que ahí aparece tiene que ser la misma que encontraremos en el directorio /js/jquery/ de nuestro Prestashop. Y con esta tontería ya podremos utilizar CCC (Combinación, Compresión y Cache) sin ningún problema con jQuery.
4 Comentarios
Hola,
Yo tengo la misma version en ambos sitios y aun asi me salta el error y no envia mail cuando el producto no esta en stock
Hola. Hace mucho de este artículo, por lo que imagino que las cosas deberían haber cambiado bastante. Pero si tienes /config/defines.inc.php en ese directorio y las versiones de Jquery son iguales en ese archivo y en /js/jquery/ debería funcionar. Al menos a mi en su día me sirvió para solucionar el problema.
En cuanto a lo del email, te sugiero que compruebes la configuración del servicio SMTP para ver si solo deja de enviar el correo cuando el producto ya no se encuentra en stock, o no lo envía nunca.
Salu2.
Me ha venido bien este post … me pasaba justo lo mismo que describes :)
A todos nos pasó alguna vez. Me alegro que te sirviese.