Añadir informes en Prestashop

He de reconocer que no le había hecho demasiado caso al apartado de Estadísticas de Prestashop, pero al tener que realizar algunos reports encontré que es el sitio ideal, ya que Prestashop ofrece una interfaz muy útil para añadir tus módulos en ésta sección.

Si os fijáis, hay un gran número de módulos de estadística, todos empiezan por stats..

report2

Todos siguen un mismo patrón. Si quieres añadir el tuyo tienes que partir del siguiente

Extendemos de ModuleGraph en lugar del habitual Module. Ahora estamos obligados a implementar getData que se usa para obtener información a la hora de generar reports en csv o gráficamente. Pero si queremos simplemente ver el report en un listado html no es necesario añadir nada.

El hook que hay que implementar es AdminStatsModule y es donde haremos la consulta y generaremos el html.

El resultado final sera que tenemos un nuevo apartado en el listado de estadísticas

report

El html se genera en el hook de la siguiente forma.

La idea es generar un layout que será muy parecido en todos los módulos de estadísticas. En este caso se añade primero en el lateral derecho un selector con las categorías que servirá para filtrar en las consultas.

La tabla de resultados la genera _getHtmlProductsTotalList().

La idea es simplemente generar un <div> con la tabla con la clase table. Generas la cabecera y luego iteras por tu consulta sql generando una nueva fila.

No hay que olvidar que en la consulta disponemos siempre de la fecha que se ha configurado en el menú superior (común para todas las estadísticas)

report3

De forma que a la hora de filtrar disponemos de un método para obtener esta fecha. En este caso además disponemos de la categoría (en caso de que se haya seleccionado con el selector)