Prestashop

Gestores de contenidos, Prestashop, Trucos

Prestashop: backend va lento o no puedes acceder. Solución

Estos días muchos de nuestros clientes con Prestashop han tenido el mismo problema. O lentitud (enorme) en el backend, o directamente no podían entrar en él (rueda girando indefinidamente tras pinchar en acceder). Obviamente todos pensamos en los hosting y hemos perdido mucho tiempo intentando depurar el problema. Pero la causa era otra. Parece ser que Prestashop usa servidores externos cuando ciertos módulos o addons están activos. Estos módulos estaban colapsados y esto provocaba la lentitud o la imposibilidad de acceso. Os decimos cómo solucionarlo. Solución a backend lento o a no poder acceder por los problemas de addons externos. La solución varía dependiendo de la versión de Prestashop. En Pretashop 1.6: hay que desactivar el módulo gamification. Pero no vale hacerlo desde el backend (y si no puedes acceder peor jejeje). Hay que cambiar el nombre de la carpeta  /modules/gamification  Con esto verás como ya puedes acceder a tu backend y va muy rápido. En Prestashop 1.7:  no hay módulo, hay que modificar unos ficheros. Podéis ver la solución propuesta por Prestashop aquí pero consiste en: – Editar el fichero classes/Tools.php y cambiar la línea : protected static $is_addons_up = true;  a protected static $is_addons_up = false; – Editar el fichero src/Adapter/Addons/AddonsDataProvider.php  y cambiar la línea: protected static $is_addons_up = true; a protected static $is_addons_up = false; Con esto debería estar arreglado. Nota: hay quien recomienda borrar el fichero config/xml/default_country_modules_list.xml. Si no te funciona prueba con eso, aunque nosotros no lo hemos necesitado.

Diseño Web, Gestores de contenidos, Prestashop

Prestashop: mostrar las variables y valores que llegan a un tpl en Smarty con debug

Cuando tienes que modificar ficheros tpl en Prestashop, muy a menudo necesitas saber qué variables le llegan desde Smarty (no las de la plantilla). Porque existen unas variables globales y otras que llegan a cada plantilla (diferentes a cada una). Si no pierdes mucho tiempo “probando”. Cómo mostrar las variables y valores que llegan a un tpl en Smarty. Esto para nosotros ha sido “un descubrimiento”.  Sólo tienes que poner {debug} en la plantilla tpl que quieras “evaluar”. Después de poner ese código, recarga la página. El código va a producir un pop-up, así que comprueba que el navegador no te lo está bloqueando. Cuando lo activas, saldrá un pop up como el de la imagen con las variables buscadas y sus valores. Con eso sólo tienes que programar lo que necesites. Esto es muy útil para programar cambios, pero también para hacer “debug”, es decir para ver por qué falla alguna cosa. Las de la plantilla puedes obtenerlas con getTemplateVars. Por ejemplo con: $all_tpl_vars = $smarty->getTemplateVars(); var_dump($all_tpl_vars);

Diseño Web, Gestores de contenidos, Prestashop, Trucos

Prestashop: el archivo es demasiado grande. Configurar el tamaño de subida de archivos

En ocasiones, sobre todo si tienes imágenes grandes, puedes recibir un error de “el archivo es demasiado grande”. Os enseñamos a modificar el tamaño de subida en Prestashop. Cómo configurar el tamaño de subida de archivos en Prestashop. Este error se puede deber a dos causas: a) configuración de Prestashop y b) configuración del servidor. Lo primero sería verificar la fácil, la de Prestashop. Para ello tenemos que ir al backend, a Configuración> Parámetros Avanzados > Administración. Ahí veréis un apartado llamado Cuota de subida donde podéis cambiar el tamaño de ficheros. El interesante es el de “Tamaño máximo para una imagen de producto“, porque suele ser la que falla. Subidla a lo que necesitéis (teniendo en cuenta que imágenes más grandes tardan más en cargar). En Diseño >Imágenes tenéis algún que otro parámetro más para las imágenes de personalización de productos (sólo para ese caso especial). Paso 2. Si esto falla lo más seguro es que tengáis alguna limitación en el servidor. Lo mejor es poner por prestashop un fichero phpinfo y ver los parámetros configurados. Sobre todo mira post_max_size y upload_max_filesize. Si estos parámetros están demasiado bajos tienen que cambiarse. Cómo hacerlo depende de tu alojamiento. Muchos admiten cambiarlos desde el panel. Otros admiten crear php.ini personalizados o incluso cambiar los parámetros desde htaccess. Lo mejor es que contactes con tus administradores o con algún técnico para que lo vea. Una modificación errónea puede “tirar” tu web.  

Diseño Web, Prestashop, Trucos

Mejorar la calidad del logo en las facturas de Prestashop

Prestashop, por lo menos en la versión 1.7 (y parece que antes también) tiene muchos problemas con la calidad de las imágenes. En otro artículo explicaremos cómo mejorar las imágenes de productos y por qué pierden tanta calidad, hoy vamos con el logo en las facturas. Cómo mejorar la calidad del logo en las facturas de Prestashop. Cuando subes un logo desde el backend para las facturas, desde Diseño>Tema y Logotipo>Logos de Factura y Correo Electrónico, Prestashop lo pone en las facturas. El problema es que toda imagen que sube la comprime y modifica. Puedes modificar el tamaño y la posición de esta imagen (modificada) desde el fichero header.tpl de tu directorio pdf (ya sea en la raíz o, más recomendable, en tu tema). En la web que estábamos trabajando estos días, esto implicaba que el logo se veía borroso. La calidad empeoraba cuando subíamos el tamaño, y se veía borrosa cuando lo volvíamos pequeño. Solución. La solución parece estar en saltarse a Prestashop, subir la imagen por FTP a un directorio, y modificar el header.tpl para que la busque directamente en ese directorio. En el enlace que hemos dejado al principio del artículo los usuarios han enlazado una imagen svg. Se puede si no tienes tipografía extraña, si no, como el servidor no la tiene, no se va a ver. Nosotros pusimos directamente un enlace a un png y la mejora era espectacular. Ve a tu directorio de facturas (suponemos en la plantilla) en /themes/tuplantilla/pdf y edita el fichero header.tpl. Ahí verás una línea que pone: {if $logo_path} <img src=”{$logo_path}” style=”width:{$width_logo}px; height:{$height_logo}px;” /> Nosotros hemos comentado la original (nos gusta más que borrar) y puesto: {if $logo_path} {**<img src=”{$logo_path}” style=”width:{$width_logo}px; height:{$height_logo}px;” />*} <img src=”{$img_ps_dir}nombredetulogo.png” style=”width:{$width_logo}px; height:{$height_logo}px;” /> En el artículo que enlazamos pusieron un svg (pruébalo primero porque obviamente la calidad es mejor): <img src=”{$img_ps_dir}Name_of_your_Logo.svg” style=”width:{$width_logo}px; height:{$height_logo}px;” /> La imagen obviamente la estamos subiendo al directorio img de la raíz (que es el que se llama con {$img_ps_dir} Veréis como así tus facturas tienen un logo con la calidad adecuada.

Diseño Web, Gestores de contenidos, Prestashop

Traducir o eliminar Gratis (Free) en los costes de envío de Prestashop

Hoy vamos con otra de esos fallos innecesarios de Prestashop. Si tu haces un pedido, y tienes puesto que los costes de envío se calculen por la dirección, aquellos clientes que sean invitados verán Costes de envío: Gratis hasta que rellenen dicha información.  Obviamente esto está mal, los costes de envío están pendiente de cálculo. Primer error. Ok, pues la solución sería traducirlo ¿no? Pues aquí está el segundo error, la traducción no funciona. Aparece el término en la plantilla Classic pero nosotros tenemos una plantilla “hija” y, aunque hemos movido todo lo pertinente a ella, no aparece ahí. Suponemos que tampoco si tienes otra plantilla. Os explicamos por qué. Traducir o eliminar Gratis en los costes de envío de Prestashop. Como decimos el error está en el sistema de traducciones. Este término está en el fichero src/Adapter/Cart/CartPresenter.php. Ahí aparece lo siguiente: $subtotals[‘shipping’] = array( ‘type’ => ‘shipping’, ‘label’ => $this->translator->trans(‘Shipping’, array(), ‘Shop.Theme.Checkout’), ‘amount’ => $shippingCost, ‘value’ => $shippingCost != 0 ? $this->priceFormatter->format($shippingCost) : $this->translator->trans(‘Free’, array(), ‘Shop.Theme.Checkout’), Esto hace que debería poner la traducción en tu tema, pero en nuestro caso no lo hace. Sólo en el tema padre. Así que hay dos soluciones: Cambiar eso de Free ahí en ese fichero. Pero en cualquier actualización se borrará el cambio. En nuestro caso la traducción está en el tema Classic (aunque usemos un tema hijo), en Shop > Theme > Checkout.  Por lo tanto lo modificamos en el tema padre. No sabemos si lo cambia al actualizar (suponemos que sí). Esperamos que esto lo solucionen pronto. En nuestro caso, hemos puesto “Pendiente de cálculo de los costes de envío” en todos los idiomas, y así, cuando ponen la dirección, ya aparecen los costes.  

Diseño Web, Gestores de contenidos, Prestashop

Facturas rectificativas en Prestashop. Cómo configurarlas

Desde las últimas versiones, Prestashop nos permite realizar algo que, para la legislación española, es obligatorio: las facturas rectificativas. Eso si, tenemos que realizar algunos cambios que os dejamos a  continuación. Cómo configurar las facturas rectificativas en Prestashop. Tenemos que cambiar varias cosas. Os las ponemos por partes. 1.  Traducciones. Lo primero es traducir los términos para que aparezca Factura Rectificativa en las facturas que emitamos de este tipo. Para eso tenemos que ir a Internacional>Traducciones> Traducciones de Temas>Tutema>Idioma (es)  y ahí buscar Credit slip. Todo lo que ponga Credit slip hay que traducirlo por Factura Rectificativa. Por ejemplo en Shop>pdf para las facturas. Si falta algo por traducir, por ejemplo en los e-mails o el backoffice entra en cada apartado y busca Credit Slip. Con esto ya tenemos el nombre correcto. Relacionado con esto, puedes querer cambiar el prefijo de tus facturas rectificativas. Para eso ve al backend a Pedidos y debajo de Facturas tienes el apartado “Facturas Por Abono” o, si lo has traducido en el Backend, Facturas Rectificativas. Ahí podrás ver todas las emitidas y, si vas a la parte inferior de la pantalla, tienes OPCIONES DE FACTURAS POR ABONO  y ahí puedes cambiar el prefijo. 2. Referenciar la factura a la que rectificamos. Otra cosa importante es que la factura rectificativa referencia a la original. Esto no viene por defecto en Prestashop, y hay que modificar ficheros. Tenemos que editar el fichero order-slip.tpl de la carpeta pdf de nuestra plantilla. Al final del fichero añadimos lo siguiente (justo encima del <!– Hook –> y debajo de </tr>) : <br/> <br/> <br/> {l s=’Invoice rectified’ d=’Shop.Pdf’ pdf=’true’}:{$order->invoice_number|string_format:” FA{‘Y’|date}/%06d”}</p> <p> Explico el código. La primera parte entre {} es el texto a incluir delante. Nosotros ponemos las cosas en inglés y luego vamos al backend, a las traducciones>tutema>es>pdf y cambiamos ese término por Factura rectificada Después el segundo {} es la instrucción que saca el número de factura. En él hemos incluido FA que es el prefijo que nuestro cliente usa para sus facturas (cámbialo por lo que quieras). Y nuestro cliente tiene puesto que añada el año delante de las facturas, por eso ponemos lo de {‘Y’|date}/ , si tu no lo usas no pongas esa parte. De esta manera veréis que ya tenéis las facturas traducidas, y el número de factura original referenciada en nuestra factura rectificativa. Cómo se usan las facturas rectificativas. Por último explicamos cómo se usan estas facturas. Para emitir una factura rectificativa tienes que ir al pedido, al backend, Pedidos y buscar tu pedido. Justo donde puedes ver las facturas, en la parte superior tienes las opciones de reembolso. Si el pedido no se ha enviado todavía (no está marcado como enviado) sólo tendrás Reembolso Estándar. En esta opción sólo te deja devolver el importe íntegro de los productos. Si el pedido ya se ha enviado tienes Reembolso Estándar y Reembolso Parcial. En el Reembolso Parcial te deja reembolsar parte del importe pagado tanto en los productos como en los gastos de envío. Cuando elijas una de esas opciones, además de generar la factura de dejará generar un cupón descuento si así lo quieres. Una vez generada, podrás ver siempre la factura en el pedido, y en la sección de Facturas por Abono del backend. Esperamos que de esta manera podáis usar las facturas rectificativas. Con estos retoques es rapidísimo devolver algo a un cliente.      

Diseño Web, Gestores de contenidos, Prestashop

Cómo traducir el Welcome del asunto en el e-mail de bienvenida de Prestashop

Otro de esos fallos raros de Prestashop (y tenemos muchos más). Cuando el cliente crea una cuenta, recibe un e-mail de bienvenida. Sin embargo en el asunto pone Welcome. Si vas a los asuntos de e-mails de la sección de traducciones del backend, aparece el término. Pero por más que lo traduces no hace ni caso. Por este y algún otro artículo reciente y, viendo el código y leyendo artículos, tengo la sensación que están cambiando el sistema de traducciones y no han hecho una revisión demasiado profunda. Cómo traducir el Welcome del asunto en el e-mail de bienvenida de Prestashop. De nuevo lo que pasa es que falta un fichero. Tienes que ir a a /mails/tuidioma , por ejemplo /mails/es/ y buscar un fichero lang.php. Si no está ahí busca en los demás idiomas, puedes usar ese. Si no puedes recrearlo. Yo lo que hago es copiarlo a /themes/tuplantilla/mails/tuidioma  para tenerlos ahí en la plantilla y en las traducciones de la plantilla. Mi fichero que sólo tiene la traducción de Welcome es algo así: <?php global $_LANGMAIL; $_LANGMAIL = array(); $_LANGMAIL[‘Product out of stock’] = ”; ?> Pero puedes aprovechar para traducir otros términos. La gente lo usa para traducir también el Order Confirmation. Os dejo algunos de los que se usan. $_LANGMAIL = array(); $_LANGMAIL[‘Your new admin password’] = ‘ ‘; $_LANGMAIL[‘Your password’] = ‘ ‘; $_LANGMAIL[‘Welcome!’] = ‘ ‘; $_LANGMAIL[‘Order confirmation’] = ‘ ‘; $_LANGMAIL[‘Message from contact form’] = ‘ ‘; $_LANGMAIL[‘My personal informations’] = ‘ ‘; $_LANGMAIL[‘Message from a customer’] = ‘ ‘; $_LANGMAIL[‘Virtual product to download’] = ‘ ‘; $_LANGMAIL[‘Referral Program’] = ‘ ‘; $_LANGMAIL[‘Package in transit’] = ‘ ‘;  

Diseño Web, Gestores de contenidos, Prestashop

Traducir los campos del módulo de Transferencia Bancaria, wirepayment, en Prestashop

Otro de esos errores estúpidos y fácilmente corregibles de Prestashop. Por alguna razón hay ciertos campos del módulo de Transferencia Bancaria (wirepayment), que no se traducen correctamente. Si, la traducción aparece en el back office en módulos, pero pongas lo que pongas no hace ni caso. Aquí podéis ver el ticket abierto a Prestashop. Os dejamos la solución hasta que lo arreglen. Traducir los campos del módulo de Transferencia Bancaria, wirepayment, en Prestashop. La solución que nosotros hemos probado y visto que funciona es una de las mencionadas en el hilo anterior. Tenéis que crear, en el directorio de vuestra plantilla y crear (si no está) el directorio /modules/ps_wirepayment/views/templates/hook/. Después, del directorio raíz copia el fichero /modules/ps_wirepayment/views/templates/hook/payment_return.tpl a ese directorio de tu plantilla. Por último edita el fichero y cambia todos los campos traducibles de esta manera: {l s=”My string” mod=”ps_bankwire”}  lo conviertes, por ejemplo en   {l s=”My string” d=”Shop.Bankwire”} Esto hace que el campo aparezca en el apartado de traducciones en tu tema (Internacional>Traducciones>Traducciones del tema>Tu tema>Idioma) bajo el apartado Shop->Bankwire. Y cuando las traduzcas ahí SI que aparecerá la traducción.

Diseño Web, Gestores de contenidos, Prestashop

Quitar en el asunto de los emails de Prestashop el nombre de la tienda

Estamos desarrollando una tienda en Prestashop a la que estamos dedicando bastante tiempo y de manera muy minuciosa. Por lo tanto estamos resolviendo muchos problemas que muchos habréis encontrado, e iremos publicando aquí las soluciones. Uno de los que más le fastidiaba al cliente es que el asunto de los emails mostraba el nombre de la tienda. Algo como Asunto “[Nombre de la tienda] Bienvenido”. Entre corchetes. No es muy atractivo y quería quitarlo. Al fin y al cabo la dirección de correo y el cuerpo del mismo ya tienen información sobre la tienda. Cómo quitar en el asunto de los emails de Prestashop el nombre de la tienda. Para ello hay que editar la clase Mail.php. Cuando hacemos esto, mejor que editar el fichero de Prestashop deberíamos hacer un override. Si, en teoría pronto lo van a quitar, pero todavía no han propuesto nada que funcione tan bien, todos necesitamos modificar la tienda y los overrides son perfectos para ello y funcionan. Así que copia el fichero /classes/Mail.php  a /override/classes/Mail.php Editar el fichero /override/classes/Mail.php y busca las líneas:  /* Create mail and attach differents parts */ $subject = ‘[‘.Configuration::get(‘PS_SHOP_NAME’, null, null, $idShop).’] ‘.$subject; Como ves ahí pone el nombre entre corchetes. Edita la segunda línea para que quede: $subject = /*'[‘.Configuration::get(‘PS_SHOP_NAME’, null, null, $idShop).’] ‘.*/$subject; Estamos comentando la primera parte para que la ignore. Guarda el fichero y prueba. Antes de probar, siempre que hagas un override es bueno ir a /app/cache/prod y borrar los ficheros class_index.php classes.php Para que coja tu “override” de la clase. Prueba y debería estar solucionado. Obviamente el truco también sirve para poner delante lo que quieras en el asunto de tus correos. Por ejemplo: $subject = ‘Pon el texto que quieras’.$subject; Debería funcionar (no lo he probado).

Diseño Web, Gestores de contenidos, Prestashop

Prestashop: los e-mails de confirmación de pedido no listan los pedidos. Solución

Prestashop tiene ciertos errores “tontos”, que  se repiten de versión a versión y que tendrían muy fácil solución con algo de cuidado. En ocasiones parece que les falta ese cuidado de detalle. Este es uno de ellos, un error del que hay constancia desde versiones tardías de la 1.6 y que se repiten en varias versiones de la 1.7. Los e-mails de confirmación de producto no muestran la lista de productos. Solución. El problema es básico y “serio”. Llega la confirmación de pedido con el precio de la compra, pero sin productos en el mismo. Y claro, el cliente no tiene confirmación del producto que ha comprado. La solución es sencilla (y de ahí estúpido que no se haya resuelto desde Prestashop). Faltan los siguientes ficheros: order_conf_product_list.tpl order_conf_product_list.txt ¿Cómo conseguís estos ficheros? Si tienes una versión anterior funcional copialos y pegalos en la carpeta de correos (mails, ya sea la de Prestashop o , mejor, la de tu tema), en su idioma correspondiente. O pégalos en todos. Nosotros los hemos copiado de una versión 1.6 así que puedes probar a descargarte dicha versión (aunque creo que las últimas tenían dicho error). No hay que modificar nada de código. Nosotros lo copiamos en directoriodetutienda/themes/tutema/mails/es  (o los idiomas que quieras) y funcionó.

Scroll al inicio