SmythSys IT Consulting

Campos obligatorios en el registro de Prestashop: DNI, teléfono, código postal

Esto debería ser fácil, deberías poder entrar en la configuración de Prestashop y marcarlo. Pero no… Estar está ahí, pero parece que lo han escondido a conciencia. Os decimos cómo seleccionar los campos que queréis que sean obligatorios en el registro de Prestashop.

Campos obligatorios en el registro de Prestashop DNI, teléfono código postal.

Método 1.

Para seleccionar que campos, dentro de los que deja Prestashop, son obligatorios en el registro de Prestashop tienes que ir al backend a Clientes > Direcciones.

Ahí aparece todas las listas de direcciones de clientes registrados y, al final (casi para pasar desapercibido, tienes un campo recogido con un +, llamado Establecer los campos requeridos para esta sección.

Pincha en el más y verás una serie de campos que puedes seleccionar.

Siempre es mejor hacerlo de esta manera porque no retocas ni el sistema ni la plantilla.

Nota: esto debería funcionar en teoría. A nosotros en la 1.7.42 se nos marca la casilla (teléfono) pero al refrescar se desmarca. No hay manera. Usamos el modo 2.

Método 2.

Si esto no te vale, o necesitas algún otro campo puedes hacerlo de esta manera.

Primero tienes que ver si es un campo de cliente o de dirección. Por ejemplo teléfono es de dirección. Los campos de dirección están en Address.php y el de cliente en Customer.php, ambos en el directorio clases. Te ponemos el ejemplo con el de cliente (es lo mismo en Address).

    • Copia el fichero classes/Customer.php en la carpeta override/classes/Customer.php
    • Edita el fichero.
    • Donde pone
      /**
          * @see ObjectModel::$definition
          */
         public static $definition = array(
             'table' => 'customer',
             'primary' => 'id_customer',

Vienen todos los campos. Sólo tienes que poner ‘required’ => true al final del campo que quieras que sea obligatorio. Por ejemplo si quieres la empresa obligatorio cambias:

'company' =>array('type' => self::TYPE_STRING, 'validate' =>'isGenericName'),

por

'company' =>array('type' => self::TYPE_STRING, 'validate' => 'isGenericName','required' => true),

Algún campo puede requerir más modificaciones porque impliquen algún otro campo más (por ejemplo el cumpleaños incluye año, mes y día).

Una vez hecho este cambio, da un error 500 si intentas dejar vacío el campo. En Address.php hay que modificar el fichero AddressFormat.php (copialo antes a override/classes) y meter el valor en el array required. Por ejemplo aquí meto al final el phone:

/** @var array Default required form fields list */
public static $requireFormFieldsList = array(
‘firstname’,
‘lastname’,
‘address1’,
‘city’,
‘Country:name’,
‘phone’,
);

En Customer.php hay que buscar la clase que valida y hacer lo mismo.

1 comentario en «Campos obligatorios en el registro de Prestashop: DNI, teléfono, código postal»

Deja un comentario

Resumen de nuestra Política de Privacidad

  • Responsable: SmythSys IT Consulting SLNE.
  • Finalidad: Gestionar y moderar los comentarios.
  • Legitimación: Necesitas dar tu consentimiento para publicar un comentario.
  • Destinatarios: Tus datos se alojan en los servidores de OVH.
  • Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la dirección del responsable (en nuestra política de privacidad).