Vamos a aportar una solución para el siguiente síntoma cuando trabajamos con Prestashop. Cuando un cliente realiza una compra, en las opciones de su cuenta está el historial de compra con todos los pedidos que ha realizado en la tienda. Para cada pedido aparece la referencia del pedido y un botón detalles que llevan al mismo enlace. Pues bien, ocurre que el botón detalles en el histórico de pedidos no funciona.
Es habitual encontrar este error en temas que no es default-bootstrap que tiene Prestashop por defecto o al realizar cualquier modificación en código, y más cuando está relacionado con Javascript.
Para aplicar la solución que planteamos en este post, lo primero que debemos hacer localizar el fichero history.tpl del tema que estamos utilizando con nuestra instalación de Prestashop que encontraremos en la carpeta «themes/mi-tema«.
Nos adentramos en el código de este fichero en busca de la línea de código que implementa el enlace a los detalles del pedido. Debemos buscar concretamente la cadena siguiente:
javascript:showOrder(1, {$order.id_order|intval}, ‘{$link->getPageLink(‘order-detail’, true)|escape:’html’:’UTF-8′}’);
Esta línea aparecerá en dos líneas distintas, una para el enlace que hay sobre la referencia de pedido y otra para el botón detalles. Básicamente, la idea es generar el link sin javascript (que es lo que no está funcionando correctamente sin entrar en más detalle) sustituyendo el código anterior por el siguiente:
{$link->getPageLink(‘order-detail’)|escape:’html’:’UTF-8′}&id_order={$order.id_order|intval}»
De esta forma solucionaremos el problema no haciendo uso de javascript para acceder al link.