No se puede actualizar la configuración, al agregar productos con combinaciones en Prestashop
Hey! Hola que tal amigos de Junior a Senior el día de hoy les vengo con un nuevo tutorial, en este resolveremos un error de Prestashop( No se puede actualizar la configuración ). Este problema es algo molesto y que me llevo algunas horas de resolver ya que no hay mucha información sobre esto.
El error se muestra de la siguiente forma:
Me di cuenta de este problema al querer actualizar las variaciones de algunos productos con los cuales tenia que hacer algunas pruebas.
Es aquí cuando empieza el terror ya que es una tienda con alrededor de 1800 productos y las soluciones que encontraba por foros y sitios web eran de eliminar ya sea las variaciones, los productos o hasta renicializar toda la tienda online, lo cual obviamente no podía ser, ya que es un cliente demasiado importante como para realizar todo de nuevo.
Esto llevo varias horas en encontrar una respuesta y varias búsquedas que no dieron muchos frutos que digamos, ya que en modo debug solo me mostraba lo siguiente y no lograba descifrar el error ya que solo me mostraba e siguiente error:
An exception has been thrown during the rendering of a template (“Catchable Fatal Error: Object of class Currency could not be converted to string”).
Aunque después de un rato y algunos momentos de estrés me di cuenta del error y su solución y lo tenia en los ojos ya que la versión de Prestashop es 1.7.7.5, tiene como idioma predeterminado el Español (Spanish) y la moneda predeterminada es el euro.
Cuando el producto no tiene combinaciones, todo funciona bien pero cuando se agregan las combinaciones, aparece un error 500: Se ha lanzado una excepción durante la renderización de una plantilla (“Error fatal detectable: el objeto de la clase Moneda no se pudo convertir en cadena “).
El problema se puede encontrar en el archivo :
src/PrestaShopBundle/Resources/views/Admin/Product/ProductPage/Forms/form_combination.html.twig (line 32) ( {{ default_currency }}) y siempre que se solicite la moneda predeterminada en el archivo (por el precio).
El archivo php que se genera a partir del archivo twig contiene el siguiente texto “($context[“default_currency”] ?? $this->getContext($context, “default_currency”))”. Cuando el texto se reemplaza por “EUR” o en mi caso MX, todo vuelve a funcionar bien (al menos hasta que se borra la caché y / o se desactiva el modo de depuración) lo cual no es una solución antes de borrar la cache.
La solución es hacer lo siguiente e ir a nuestra base de datos y buscar la tabla: ps_currency_lang. Y una ves ahi llenar los campos que nos hacen falta, en este caso me hacia falta el idioma predeterminado es que es el español (spanish), el cual elimine porque pensé ya no lo necesitaría más, pero al parecer esta es la fuente del problema y la solución la siguiente:
Lo que tenemos que hacer aquí es llenar los espacios vacíos, ya sea por el idioma que eliminamos o por el idioma que estamos trabajando actualmente, colocamos de nuevo el name y el campo symbol y nuestra tienda funcionara de forma correcta de nuevo.
Espero les haya servido de algo esta breve información, si tienen dudas u otras maneras de hacerlo pueden mostrárnoslo en los comentarios, esto ayudara a qué todos crezcamos y resolvamos nuestros problemas de forma rápida y sencilla.
Saludos L. G. R.
Asesoría en E-commerce:
bitgare.com
Herramientas utiles:
bitcean.com