Crear nuevo campo en los transportistas en Prestashop 1.7

Documento donde vamos añadir un campo nuevo en los transportistas en Prestashop 1.7.

Este documento ha sido probado en Prestashop 1.7.2.4. Lo digo porque existe la posibilidad de que en futuras variantes de Prestashop 1.7.X no sea válido y se haga de forma totalmente diferente.

Añadir campo en la base de datos

En nuestro caso vamos añadir un campo de tipo VARCHAR de 64 caracteres de longitud denominado “campo_prueba“.

El campo lo vamos añadir en la tabla: ps_carrier (recordar que yo digo “ps_” debido a que es el prefijo de las tablas de mi instalación de Prestashop, en vuestro caso este dato puede variar, es solo un aviso para navegantes).

El campo lo podemos añadir fácilmente desde phpMyAdmin bien gráficamente o generando la consulta.

Campo nuevo en la base de datos en la tabla ps_carrier

Consulta SQL para avanzados:

Consulta SQL para añadir campo

Crear override de la clase Carrier

En el override de la clase Carrier vamos definir el nuevo campo que hemos creado en la tabla ps_carrier.

Recordar que el override de la clase Carrier se guarda en el directorio /override/classes/ 

Creamos el fichero Carrier.php con este contenido:

Override de la clase Carrier
Override de la clase Carrier

Dentro del contenido del override de la clase Carrier vamos a pegar de la clase original (/classes/Carrier.php) el código de “public static $definition” (que es el correspondiente a la definición de los campos de la tabla ps_carrier).

public static $definition = array

Ahora mismo el override tiene el siguiente contenido:

Override clase Carrier

En este override nos quedan “2” puntos.

Añadir un atributo publico al override de la clase Carrier.

Atributo público del override de la clase Carrier

Añadir la definición del campo que hemos creado en la base de datos dentro de “public static $definition = array( ‘fields’ => array(

Definición campo

El override de la clase Carrier quedara del siguiente modo:

Override de la clase Carrier

Podéis descargar el override aquí (esta comprimido en zip): Descargar (recordar que debéis guardarlo en el directorio /override/classes/)

Crear override del controlador: AdminCarrierWizardController

El override del controlador AdminCarrierWizardController se guarda en el directorio /override/controllers/admin/

Creamos el fichero AdminCarrierWizardController.php con este contenido:

Override del controlador AdminCarrierWizardController

Copiamos del controlador original /controllers/admin/AdminCarrierWizardController.php las funciones: renderStepOne y getStepOneFieldsValues

En las funciones que hemos pegado en el override tenemos que hacer los siguientes cambios:

Dentro de la función: renderStepOne añadimos el campo que se mostrara para rellenar en el primer paso de configuración del transportista. Lo hacemos dentro de $this->fields_form = array( ‘form’ => array( .. ‘input’ => array( Continúa leyendo Crear nuevo campo en los transportistas en Prestashop 1.7

Limpiar lista de módulos en Prestashop 1.7

Cuando accedíamos a la pestaña “Módulos -> Módulos y Servicios

Entrando en la gestión de módulos en Prestashop 1.7

y estábamos situados dentro del bloque “Selección“, mostraba tanto los módulos que no estaban instalados como los módulos disponibles para descargar o comprar.

Hennes, nos propone mostrar solo en el bloque “Selección” los módulos que no están instalados, pero que se encuentran físicamente en el servidor.

Para ello, nos propone ir al fichero:

src/Core/Addon/Module/ModuleRepository.php

Editando fichero

Y dentro de la función “getList()”

La podemos encontrar justo debajo del siguiente bloque:

/**
* @return AddonInterface[] retrieve the universe of Modules
*/

Donde veremos el siguiente código:

Función getList()

Dejarla del siguiente modo:

Función getList() modificada

Hemos comentado el “return array_merge” donde retornábamos dos funciones, la que hace referencia a los módulos que se encuentran físicamente en el servidor (getModulesOnDisk) y la que hace referencia a los módulos que no se encuentra físicamente para descargarlos (getAddonsCatalogModules). Hemos comentado dicho return y hemos dejado un return único retornando la función getModulesOnDisk.

Este documento ha sido construido bajo Prestashop 1.7.2.4 y es muy posible que no sea válido para futuras variantes o que futuras variantes dejen realizar esta configuración desde el mismo panel.

 

Captcha para Prestashop 1.7

A inicios del año 2013 habíamos reseñado un módulo que integraba una especie de captcha en Prestashop para poder mostrarlo en los distintos formularios de la tienda.

En esta ocasión, vamos hablar de otro clásico y de nuevo del compañero francés  Hernes del que ya hemos comentado en antaño varios aportes interesantes.

Captcha formulario de contacto
Captcha en el formulario de registro de Prestashop 1.7

Aunque existen versiones del módulo para versiones anteriores de Prestashop, en la actualidad también esta disponible una versión actualizada del módulo para mostrar el reCAPTCHA de Google en el formulario de contacto y de registro en Prestashop 1.7.  Al final de la entrada dejare el enlace para descargarlo desde el repositorio.

Una vez hemos instalado el módulo desde la pestaña módulos y servicios -> módulos y servicios del panel de administración y accedemos a su configuración, debemos añadir los datos de la API

Datos captcha
  • Para obtener los datos “Captcha public key (Site Key)” y “Captcha private key (Secret key)” debemos tener añadido nuestra web en: https://www.google.com/recaptcha/intro/index.htmlAccedemos al enlace que he pasado y añadimos nuestra tienda, tal como podéis ver en la siguiente captura:
Creando Captcha
  • Etiqueta -> Etiqueta a modo informativo.
  • Choose the type Captcha -> Nosotros hemos elegido reCaptcha v2
  • Dominios -> Añadimos el dominio de nuestra tienda.

Una vez registrado el captcha, podremos obtener la clave del sitio (Site Key) y la clave Secreta (Secret Key) para pegarla posteriormente en la configuración del módulo.

Clave del sitio y clave secreta
  • Otras opciones de configuración que nos ofrece el módulo son las siguientes:
    Activar/Desactivar captcha

    Enable Captcha for contact form -> Para activar/desactivar el captcha en el formulario de contacto.
    Enable Captcha for account creation -> Para activar/desactivar el captcha en el formulario de registro.

Por si tenéis curiosidad el módulo lleva los siguientes overrides:

Controlador -> AuthController.php para añadir el catpcha en el formulario de registro.

Clase del módulo de formulario de contacto -> contactform.php -> Para añadir el captcha al formulario de contacto.

¿Dónde podemos descargar la última versión de este módulo para poder integrar un catpcha en Prestashop 1.7?

Podemos descargar las distintas versiones del módulo desde el siguiente enlace https://github.com/nenes25/eicaptcha/releases donde disponemos también de una versión del módulo para versiones anteriores de Prestashop.

Documento construido bajo Prestashop 1.7.2.4 y la versión 2.0.1 del módulo.

PD: Se me ha olvidado comentar (en Prestashop 1.7) que debéis tener instalado previamente el módulo contactform, si no lo tenéis instalado, lo buscáis en la zona de gestión de módulos y aparecerá para instalarlo.

Módulo

 

Enlace con popup en la ficha del producto en Prestashop 1.7

Si bien es cierto que es un módulo que se encuentra disponible en la comunidad desde hace bastantes años y encima desarrollado por el usuario Shacker de la misma Comunidad de Prestashop, si la memoria no me falla todavía no lo había reseñado por aquí, aunque si utilizado.

Este módulo para Prestashop está actualizado para que funcione en Prestashop 1.7.

Dicho módulo permite mostrar en la ficha del producto un enlace que al pulsarlo se mostrara el contenido que hemos configurado en el mismo módulo en un popup.

Enlace abrir popup
Popup prestashop 1.7

La instalación del módulo, como suele ser habitual en el universo de Prestashop se realiza desde la pestaña Módulos y Servicios -> Módulos y Servicios

Módulo instalado

Las opciones que ofrece la versión gratuita del módulo son las siguientes:

  • Contenido que se visualizara al pinchar el enlace de la ficha del producto en un popup. En este ejemplo te colocan una tabla de tallas, pero puede ser perfectamente cualquier otra cosa.
Contenido que se vera en el popup
  • Categorías donde se visualiza el enlace que abre el popup. Es decir, si señalamos “Women” se mostrará el enlace en los productos que estén situados en la categoría Women.
Categorías de los productos donde se mostrara el enlace que abrirá el popup

¿Dónde puedo descargar el módulo?

https://www.prestashop.com/forums/topic/224670-module-sizes-guide-chart-v201-ps-1217/

http://catalogo-onlinersi.net/en/add-ons-prestashop-modules/406-sizes-chart-prestashop-module.html

https://www.prestashop.com/forums/topic/224672-modulo-sizes-chart-v20-tabla-de-tama%C3%B1os-ps-1217/

Documento realizado bajo Prestashop 1.7.2.4 y la versión 2.0.1 del módulo.

DOC – Añadir campos al formulario de contacto en Prestashop 1.7

Campo nuevo del formulario de contacto

Dejo un pequeño documento, donde comento brevemente los ficheros y tablas de la base de datos para posibilitar el que podamos añadir campos nuevos en el formulario de contacto, poder enviarlos por emails y almacenarlos también en la base de datos para luego poder verlos en el panel de administración.

No es una guía propiamente y es una nueva modalidad de artículos donde depende explicar cómo hacerlo, os comento que ficheros debéis modificar con un breve comentario. De esta manera os dejo a vosotros investigar dentro del universo de Prestashop.

¿Preparado para añadir campos en el formulario de contacto de Prestashop 1.7? (Pincha en la siguiente imagen)

Añadir campos en el formulario de contacto de Prestashop 1.7
Añadir campos en el formulario de contacto de Prestashop 1.7