Ver el tiempo de carga de nuestra página Prestashop

logo prestashop

Entre las muchas cosas que se pueden hacer utilizando el modo DEBUG, podemos ver el tiempo de carga de nuestra página Prestashop.

Puedes ver acá como activar o desactivar el método DEBUG.

Para ver en el Backend el tiempo de carga, debemos activar la opción ‘_PS_DEBUG_PROFILING_’

Esta  muestra en detalle el rendimiento de nuestra tienda.

Para acceder a ellos debemos seguir la ruta: directorio/config/defines.inc.php”, siendo directorio, aquel donde se ha instalado tienda.

Una vez dentro cambiamos la linea

define(‘_PS_DEBUG_PROFILING_’, false);

por

define(‘_PS_DEBUG_PROFILING_’, true);

Una vez guardado, actualizamos la pagina y ahora podemos ver los tiempos de carga, los tiempos en que se ejecutan las consultas y más información de valor sobre el comportamiento de la web.

Subir montañas, hermana hombres….

J. Martí

Solucionar “Trying to get property of non-object» en Prestashop

error prestashop

Hola, es muy probable que estes recibiendo el error “Trying to get property of non-object» en tu página Prestashop.

Si tienes un ecommerce con actualización automática de los productos desde la web del  proveedor, este error puede surgir en cualquier momento.

Veamos este error esta diciendo que estas tratando de «tomar una propiedad desde algo que no es un objeto» y eso debe ser revisado.

Recibes este error porque tienes activado el modo debug.

Si tu página se ve y funciona bien, es muy probable que puedas obviar este warning y otros de su tipo.

Por eso, si no quieres sumirte en el código, basta con desactivar el modo DEBUG, de tu pagina para no recibir más el error.

MODO DEBUG ¿que es PRESTASHOP?

El Modo DEBUG en PrestaShop,  es una  variable con la cual se puede activar o desactivar el modo de depuración.

Mediante ella, podemos visualizar todos los  mensajes de depuración y avisos PHP, que están diseñados para que  el desarrollador pueda detectar  errores, que de otro modo no veria.

En este link puedes escribirme si necesitas algún tipo de colaboración Contacto

Desactivar el modo DEBUG

Para desactivar el modo DEBUG, debemos acceder por FTP a nuestra tienda y modificar el archivo “defines.inc.php”.

Su ubicación es “directorio/config/defines.inc.php”.

En este caso directorio es el directorio raíz donde hemos instalado PrestaShop.

La variable “_PS_MODE_DEV_,  es la que que activa el modo DEBUG,  y posee dos valores “TRUE= activado” y “FALSE= desactivado”

Una vez dentro  solo deberemos cambiar la linea:

define(‘_PS_MODE_DEV_’, true);

y cambiar el valor de True a False:

define(‘_PS_MODE_DEV_’, false);

El modo DEBUG, dejara de estar activo y los errores dejaran de llegar.

Sabiendo esto ya puedes activar o desactivar el modo DEBUG a tu voluntad para evaluar errores.

Fue tu amor, más difícil y más fallo, que un contrabando de gallos, pasando al amanecer.

W. Chirino

Estructura Prestashop

logo prestashop

Analizando la estructura de Prestashop, el cual tuve que regresar, hace unos días, y con más de tiempo disponible, explicaré como funciona.

Prestashop funciona bajo el sistema  modelo, vista, controlador,  y por tanto tiene muy bien estructurado la separación lógica de estos tres componentes.

Los archivos con la extensión tpl, se encargan de las vistas, Smarty es su gestor de base de datos y están los modulos que ejecutan acciones complejas dentro del Framework.

Orientado a objetos

Prestashop está orientado a objetos, o al menos lo simula con bastante decencia, por ello todos sus módulos actúan como objetos y extienden de diferentes clases, además poseen un hook del cual cuelgan. Los modulos poseen casi todos una vista y un controlador, del cual extienden funcionalidades.

Cuando Prestashop se instala, se instalan un conjunto de módulos básicos y luego cada tema o plantilla incorporara, los suyos propios que tendrán prioridad sobre los del sistema si llegan a coincidir.

Por tanto veremos que dentro de cada módulo, la lógica está representada por el archivo .php, con el nombre del modulo, y la vista por el archivo con el nombre del modulo y la extensión .tpl., en algunos casos podría tener un archivo index, tambien

El core

El  core de Prestashop, se divide a su vez en una estructura de carpetas, bastante intuitiva,  las más importantes para conocer y que podríamos tener que tocar son classes ,config, themes, override, modules, tools y translation.

Debido a su utilidad y gran aceptación, y ser de código abierto, posee una vasta red de colaboradores.

Los cambios más  drásticos seguramente serán aquellos que realicemos en modulos y themes, pero los que hagamos en los archivos php dentro de los módulos son los que más cuidado requieren .

Los cambios en la lógica deben hacerse en el nombredelmodulo.php. Debo decir que Prestashop asimila perfectamente php nativo, por tanto las modificaciones no requieren mucho más que conocer este lenguaje, pero cuidado, porque deberán luego adecuar también los efectos de estas modificaciones en la vista si fuera necesario, por diferentes vías, algunas de ellas por ejemplo reestructurar las imágenes o limpiar la cache no requieren el uso de código  y pueden aprovecharse para ello,  las herramientas que el mismo Prestashop ofrece, otras como la modificación de traducciones,  o la corrección del código de las vistas si exigirá conocimientos de javascript, html y css.

Override

Una herramienta importante que nos da el framework es el override, con ella los cambios que hagamos, lo guardaremos  allí, eso no facilita que al actualizar a nuevas versiones, estos no se sobrescribirán y nuestras modificaciones serán protegidas.

Cambios de versiones ha habido muchos, Prestashop tiene una comunidad de desarrolladores muy activa, pero la versión 1,6 sigue siendo la mejor, mas estable, menos bugs y mejor soportada.

A pesar de todas la ventajas que la versión 1.7 ofrece no acaba de brindar la suficiente confianza a los usuarios, yo por mi parte sigo recomendando que quien tenga la versión 1.6 no la cambie.

Prestashop es potente y posee muchas soluciones a mano, que podemos aprovechar. Mi sugerencias sobre donde hacer adecuaciones, para personalizarlo por ejemplo, son estas:

La manera  mas sencilla es tocar solo los archivos dentro de la carpeta modules. Sii no es necesario tocar el php, se pueden centrar las modificaciones en los archivos tpl. Importante decir que estos mezclan html con variables y código php que se encierra entre corchetes, hay que estudiar conocer la variables, lo cual no es demasiado difícil y atender a los archivos que poseen texto entre comillas simples, estos son textos que aparecen en la plantilla y que tendrán también traducción , por tanto si se cambian, se deberá buscar en el archivo de traducciones y cambiarlo.

Prestashop ofrece una herramienta para esto,  en el  Administrador de la tienda en Herramientas/Traducciones, o  se puede hacer también hurgando en el código directamente, en la carpeta idiomas.

También ser pueden modificar la estructura de los mails, esto se logra en los archivos dentro de la carpeta mails, editándolos fácilmente.

Plantillas

La modificación de los temas o plantillas se puede hacer por varias vías, una es  tomar un tema de internet:  los hay buenos y malos, y de pago y gratis. Los temas se instalan en la  carpeta “themes”.  

La otra  y es la que yo recomiendo que si no lo tienen claro,  se crea una plantilla nueva a partir de la  que trae Prestashop por defecto que en la versión 1.6 esta muy bien y  mejorarla.

El mismo prestashop permite crear un nuevo tema desde su propio administrador en el gestor de temas, basta con poner un  nombre nuevo y decirle que toma como base el tema default,  y seleccionar los módulos que heredara de el,

La ventaja de hacer esto es que es una plantilla que funcionara al 100%, cosa que no sucede a veces con las que hay en la red.

A partir de aquí modificarla será ya mas fácil, con las herramientas de cualquier desarrollador de frontend, pero con las herramientas de desarrollo de Chrome y un buen editor y la conexión a FTP, estará hecho todo.

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

…., si avanzo sígueme, si me detengo empújame, si retrocedo mátame…….

Colocar el logo junto al menú en Prestashop

logo prestashop

Si estas trabajando con Prestashop 1.6,  con la plantilla que trae por defecto y por necesidad de diseño necesitas colocar el logo junto al menú, aquí te doy una solución.

Debes saber que esta solución tendras que tocar el código, por lo que si no tienes experiencia programando, déjalo a alguien que sepa o ve con mucho cuidado.

En el archivo  header.tpl. que hallarás siguiendo la ruta :

 /themes/default-bootstrap/header.tpl 

y comenta el logo actual que está en las líneas siguientes :

<div id="header_logo">
<a href="{if isset($force_ssl) && $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}" title="{$shop_name|escape:'html':'UTF-8'}">
<img class="logo img-responsive" src="{$logo_url}" alt="{$shop_name|escape:'html':'UTF-8'}"{if isset($logo_image_width) && $logo_image_width} width="{$logo_image_width}"{/if}{if isset($logo_image_height) && $logo_image_height} height="{$logo_image_height}"{/if}/>
</a>
</div>

Copia el código que acabas de comentar.

Otros post sobre Prestashop

Ahora ve al archivo  blocktopmenu.tpl, que es el encargado de manejar el área del menú.

Su ruta es la que veras debajo:

/themes/default-bootstrap/modules/blocktopmenu/blocktopmenu.tpl

Busca el div  que contiene el menú, que es este:

<div id="block_top_menu" class="sf-contener clearfix col-lg-12"> …

Y  justo antes de el, crea  un div del tipo :

<div class="col-sm-4 clearfix"></div>

 Y dentro pega  dentro lo que has copiado de  header.tpl, quedará algo asi:

<div class="col-sm-4 clearfix">
<a href="{if isset($force_ssl) && $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}" title="{$shop_name|escape:'html':'UTF-8'}">
<img class="logo img-responsive" src="{$logo_url}" alt="{$shop_name|escape:'html':'UTF-8'}"{if isset($logo_image_width) && $logo_image_width} width="{$logo_image_width}"{/if}{if isset($logo_image_height) && $logo_image_height} height="{$logo_image_height}"{/if}/></a>
</div>

Puede haber, dependiendo de la versión alguna variación, pero teniendo cuidado de colocar el código correctamente funcionará

Espero haber ayudado a alguien con esto.

Un saludo

Quién va en busca de montañas, no puede detenerse a recoger las piedras del camino.

J. Martí

Cambiar la descripción de la web

logo prestashop

Si tenemos una tienda en Prestashop, tal vez querrámos cambiar la descripción de la web incomodo: “tienda desarrollada en Prestashop” , que aparece en Google cuando lista nuestro sitio.

La solución es sencilla:

En el menú busca Preferencias y luego clica en Seo+Urls,  te aparecerá una lista de páginas que Prestashop, permite modificar para mejorar el SEO, busca index, ábrelo y edítalo, de acuerdo a tus necesidades y preferencias.

Listo, la próxima vez que el robot de Google indexe tu web, actualizara los cambios y podrás verlos.

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

….un sueño es casi todo  y más que  nada, más que todo al soñarlo, casi nada después……

Error «Premature end of data in tag badges line 1 in country_module_list.xml file» en Prestashop 1.6

error prestashop

El error «Premature end of data in tag badges line 1 in country_module_list.xml file», puede aparecer en Prestashop 1.6, de manera imprevista y sin aparente causa.

Este suele venir acompañado de otros errores, en un listado que es más o menos como el que vemos a continuación:

  1. Error found : StartTag: invalid element name in country_module_list.xml file.
  2. Error found : Premature end of data in tag badges line 1 in country_module_list.xml file.
  3. Error found : Premature end of data in tag module line 1 in country_module_list.xml file.
  4. Error found : Premature end of data in tag modules line 1 in country_module_list.xml file.
  5. Error found : CData section not finished Allow the purchase of combinations of products wit in must_have_module_list.xml file.
  6. Error found : Premature end of data in tag additional_description line 1 in must_have_module_list.xml file.
  7. Error found : Premature end of data in tag module line 1 in must_have_module_list.xml file.
  8. Error found : Premature end of data in tag modules line 1 in must_have_module_list.xml file.

La solución a este error es una acción combinada que incluye estos tres pasos:

Eliminar estos archivos en /config/xml 

Limpiar la cache de nuestra tienda

Acceder a al archivo classes siguiendo la ruta public_html/classes y modificar estas líneas.

protected static $is_addons_up = true;
    public static function addonsRequest($request, $params = array())
    {
        return false;
        if (!self::$is_addons_up) {
            return false;

La causa de este error en PS 1.6 parece ser que el servidor de addons(complementos), crea archivos xml, no válidos o no reconocibles como válidos.

Espero que este post ayude a alguien.

Gracias

También yo tengo esos momentos en los que soy asesino, juez y victima.

Y.