Registrar nuevos campos del formulario de registro

Última entrada de 3 en la cual veremos como registrar nuevos campos del formulario de registro. Esto aplicará tanto el en formulario de registro como en el formulario de edición de nuestros datos personales.

Si prefieres en lugar de programar obtener directamente un módulo que haga esto mismo por ti, te recomiendo que leas la siguiente entrada: Módulo para crear nuevos campos en el formulario de registro.

Registrar nuevos campos del formulario de registro

Listo las entradas anteriores por si os es de interés seguir todos los pasos:

  1. Manual de Prestashop 1.7 – Crear nuevos campos en el formulario de registro.
  2. Manual de Prestashop 1.7 – Comprobar el valor de los campos del formulario de registro.

Insertando los valores de nuevos campos en la base de datos.

Al igual que le comentaba a algún compañero en el foro de Prestashop, no soy partidario de ampliar las tablas que vienen por defecto en la plataforma como son ps_customer o ps_address, donde ya se guardan datos de los clientes.

Yo en lugar de esto prefiero crear tablas adicionales, ejemplo: ps_customer_extra y después en ella crear los campos que necesite. Por último se hace JOIN con estas tablas al recuperar la información y listo.

Hoy no vamos a tener la necesidad de crear ninguna tabla adicional, ya que el campo que vamos a registrar es dni y esa columna ya la tenemos en la tabla ps_address.

Recorrido de datos al dar de alta un nuevo perfil en Prestashop 1.7

Si seguimos la lógica de nuestra plataforma, vemos que al darse de alta un nuevo usuario desde el formulario de registro, los datos pasan por el método public function add($autoDate = true, $nullValues = true) que tenemos en la clase override/classes/Customer.php vista en las entradas anteriores.

De este método cabe destacar 2 líneas, ya que son las realmente importantes a la hora de registrar datos.

$success = parent::add($autoDate, $nullValues);
$this->updateGroup($this->groupBox);

Si delante de estas pusiéramos un die(‘Aún no registro nada.’); tras rellenar los campos del formulario y pulsar el botón submit veríamos en pantalla el texto definido y comprobaríamos que aún no se ha registrado nada en la base de datos.

Llegados a este punto, y viendo parent::add(), comprobamos que esta clase se encuentra en el script classes/ObjectModel.php … ya sabemos lo que toca entonces, vamos a copiarlo en nuestro override quedando en la ruta override/classes/ObjectModel.php y será sobre este último sobre el que vamos a trabajar.

Realizando la inserción de dni sobre la clase ObjectModelCore.

Para disponer del valor del dni tenemos que ir al principio de la clase ObjectModelCore que se encuentra en la ubicación override/classes/ObjectModel.php y declarar pública la variable de este modo.

/** @var string dni */
public $dni;

Veréis un gran listado de variables al principio del script, pues ponerla a continuación de estas.
Ahora ya podemos crear nuestra consulta SQL, vamos a ello.

Consulta SQL en la clase ObjectModelCore.

Vamos al método public function add($auto_date = true, $null_values = false), es aquí donde vamos a crear la consulta SQL para registrar el campo DNI. Busquemos las siguientes líneas…

// Get object id in database
$this->id = Db::getInstance()->Insert_ID();

Y justo a continuación, vamos a crear nuestra consulta.
¿Por qué en este punto?, pues porque necesitamos como mínimo recuperar el ID del usuario registrado para registrarlo junto con el DNI en la tabla ps_address. El resto de campos ya se rellenarán después en la dirección de envío.

La consulta sería algo tan sencillo como esto…

// Dejamos valores fijos como el id_country y el nombre de la dirección.
// Para mejorar esta consulta y que sea dinámica, hacer join con ps_country.
if($this->id > 0 && strlen($this->dni) == 9){
    Db::getInstance()->execute( 'INSERT INTO `'._DB_PREFIX_.'address`
                                (`id_country`,`id_customer`,`alias`,`dni`,`date_add`,`date_upd`)
                                VALUES (6,'.(int) $this->id.',\'Mi dirección\',\''.$this->dni.'\',NOW(),NOW())');
}

Como podéis ver, estamos metiendo valores fijos como el id_country (6 representa a España), o el alias.
Aquí cada uno ya que mejore la consulta haciendo los joins que considere oportunos.

Y ahora guardamos y vamos a ver qué ocurre cuando nos damos de alta.
Como podéis ver, se está registrando correctamente el campo dni en la tabla ps_address. Pero falta algo por hacer, tenemos que ir a información de la cuenta y mostrar el valor de este campo ya que en estos momentos aunque se muestra a modo visual, el campo viene vacío.

Mostrando el valor del campo dni en el formulario de la cuenta de usuario.

Nos toca volver de nuevo a override/classes/form/CustomerForm.php y vamos a editar la función fillFromCustomer dejándola de este modo…

public function fillFromCustomer(Customer $customer)
{
    // Recuperamos los datos de ps_address filtrando por customer.
    $address = Customer::getAdressParamsByCustomer($customer->id);

    $params = get_object_vars($customer);
    $params['id_customer'] = $customer->id;
    $params['birthday'] = $customer->birthday === '0000-00-00' ? null : Tools::displayDate($customer->birthday);
    $params['dni'] = $address['dni'];

    return $this->fillWith($params);
}

Aquí lo que hemos añadido son las líneas $params[‘dni’] = $address[‘dni’]; que es la que asigna el valor al propio campo del formulario. Y la línea $address = Customer::getAdressParamsByCustomer($customer->id); que es la que recupera el valor dni de la base de datos mediante un nuevo método que hemos definido en override/classes/Customer.php

Vamos por último a ver el nuevo método en override/classes/Customer.php

public static function getAdressParamsByCustomer($idCustomer)
{
    return Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
        SELECT *
        FROM `'._DB_PREFIX_.'address`
        WHERE `id_customer` = '.(int) $idCustomer.'
        AND `deleted` = 0'
    );
}

Poco tenemos que explicar de este método, recuperamos todos los valores de la tabla ps_address.
Esta consulta sería correcto crearla tanto en la clase CustomerCore como en la clase AddressCore, pero como ya tenemos hecho override sobre Customer.php pues ahí queda.

A nivel de comentario diré, que de la forma que hemos dejado ahora el desarrollo de nuestra plataforma, al llegar al carrito de compra dará un error 500. ¿Por qué este error 500?, pues porque hemos dado de alta una dirección de envío y no hemos añadido todos los campos obligatorios (lastname, firstname, address1 y city).

Campos de dirección en formulario de registro.

Vamos de nuevo a nuestro script que genera los campos en el formulario de registro, recordemos que era el método getFormat() que estaba en el script override/classes/form/CustomerFormatter.php y añadimos los dos campos que no tenemos.

$format['address1'] = (new FormField)
    ->setName('address1')
    ->setLabel(
        $this->translator->trans(
            'Address', [], 'Shop.Forms.Labels'
        )
    )
    ->setRequired(true)
    ->setMaxLength(90)
;

$format['city'] = (new FormField)
    ->setName('city')
    ->setLabel(
        $this->translator->trans(
            'City', [], 'Shop.Forms.Labels'
        )
    )
    ->setRequired(true)
    ->setMaxLength(30)
;

Modificamos de nuevo la consulta que hace el insert en override/classes/ObjectModel.php para que registre estos nuevos datos.

// Dejamos valores fijos como el id_country y el nombre de la dirección.
// Para mejorar esta consulta y que sea dinámica, hacer join con ps_country.
if($this->id > 0 && strlen($this->dni) == 9){
    Db::getInstance()->execute( 'INSERT INTO `'._DB_PREFIX_.'address`
                                (`id_country`,`id_customer`,`alias`,`dni`,`date_add`,`date_upd`,`address1`,`city`)
                                VALUES (6,'.(int) $this->id.',\'Mi dirección\',\''.$this->dni.'\',NOW(),NOW(),\''.$this->address1.'\',\''.$this->city.'\')');
}

Al igual que aplicamos nuevos validadores en override/classes/form/CustomerForm.php para que los campos no vengan vacíos.

$address1Field = $this->getField('address1');
if (!empty($address1Field)) {
    $address1Value = $address1Field->getValue();

    if (empty($address1Value)) {
        $address1Field->addError(sprintf(
            $this->translator->trans(
                'El campo Dirección no puede estar vacío.', array(), 'Shop.Notifications.Error'
            ),
            $address1Field->getValue()
        ));
    }
}

$cityField = $this->getField('city');
if (!empty($cityField)) {
    $cityValue = $cityField->getValue();

    if (empty($cityValue)) {
        $cityField->addError(sprintf(
            $this->translator->trans(
                'El campo Ciudad no puede estar vacío.', array(), 'Shop.Notifications.Error'
            ),
            $cityField->getValue()
        ));
    }
}

Vamos ahora a validateFieldsLengths() y añadimos las validaciones de longitud.

$this->validateFieldLength('address1', 255, $this->getAddress1MaxLengthViolationMessage());
$this->validateFieldLength('city', 128, $this->getCityMaxLengthViolationMessage());

 

Y creamos sus respectivas funciones.

protected function getAddressMaxLengthViolationMessage()
{
    return $this->translator->trans(
        'The %1$s field is too long (%2$d chars max).',
        array('address1', 255),
        'Shop.Notifications.Error'
    );
}

protected function getCityMaxLengthViolationMessage()
{
    return $this->translator->trans(
        'The %1$s field is too long (%2$d chars max).',
        array('city', 128),
        'Shop.Notifications.Error'
    );
}

añadimos en override/classes/ObjectModel.php las variables que vamos a utilizar para la inserción de los campos address1 y city.

/** @var string dni */
public $address1;

/** @var string dni */
public $city;

Y creamos el registro en la tabla ps_address, exacto es override/classes/ObjectModel.php y vamos a modificar la consulta ligeramente, quedaría así.

// Dejamos valores fijos como el id_country y el nombre de la dirección.
// Para mejorar esta consulta y que sea dinámica, hacer join con ps_country.
if($this->id > 0 && strlen($this->dni) == 9){
    Db::getInstance()->execute( 'INSERT INTO `'._DB_PREFIX_.'address`
                                (`id_country`,`id_customer`,`alias`,`dni`,`date_add`,`date_upd`,`address1`,`city`)
                                VALUES (6,'.(int) $this->id.',\'Mi dirección\',\''.$this->dni.'\',NOW(),NOW(),\''.$this->address1.'\',\''.$this->city.'\')');
}

Nos toca volver de nuevo a override/classes/form/CustomerForm.php y vamos a editar la función fillFromCustomer dejándola de este modo…

public function fillFromCustomer(Customer $customer)
{
    // Recuperamos los datos de ps_address filtrando por customer.
    $address = Customer::getAdressParamsByCustomer($customer->id);

    $params = get_object_vars($customer);
    $params['id_customer'] = $customer->id;
    $params['birthday'] = $customer->birthday === '0000-00-00' ? null : Tools::displayDate($customer->birthday);
    $params['dni'] = $address['dni'];
    $params['address1'] = $address['address1'];
    $params['city'] = $address['city'];

    return $this->fillWith($params);
}

Y listo, ya tenemos todo funcionando, ha desaparecido el error 500 y nuestro formulario de registro acepta 3 nuevos campos. Recordemos que podemos añadir tantos campos como deseemos, pero claro, si estos campos ya aparecen en otros formularios como es el de dirección pueden resultar repetitivos.

campo dni en el formulario de registro

 

Versiones utilizadas, tiempo y dificultad de desarrollo:

Plataforma: Prestashop 1.7.2
Tiempo de desarrollo: 35 minutos
Dificultad: Intermedio

 

50 comentarios en “Registrar nuevos campos del formulario de registro”

  1. Buenas, le comento una duda que tengo.
    Queremos registrar el teléfono del cliente durante el registro, por lo que al pertenecer éste a la tabla address, añado los campos de dirección para generar una primera dirección.
    El problema me lo genera al añadir el país, que no encuentro la manera de crear el select que tiene el registro de direcciones.
    ¿Sería tan amable de indicarme cómo conseguirlo? Gracias y perdone las molestias

    1. Vamos a hacer una cosa Antonio, voy a crear un nuevo artículo de cómo hacer esto que pides paso a paso.
      De este modo sirve a modo de entrada para otros compañeros y a ti para lo que necesitas.
      Suscríbete a mi blog y en breve llegará la notificación.
      Saludos!

        1. Por cierto, al darle al botón de suscripción da error en el form saliendo el siguiente texto:

          Boletín de noticias
          Date de alta en nuestro boletín de noticias para estar al día.
          [contact-form-7 404 "Not Found"]

      1. Buenos días Luis, tengo el mismo problema que Antonio y no encuentro la publicación que comentas para poder añadir el combo de los países y provincias al formulario.
        Muchas gracias de antemano.

    2. Antonio, he estado dándole muchas vueltas a la plataforma Prestashop versión 1.7.2.1 para ver que tal funcionaba esto, y en todos los casos es contraproducente añadir campos address en el formulario de registro, al menos hasta la versión de la plataforma 1.7.2.4

      Yo en este momento, he desecho los cambios que hice en uno de mis proyectos.
      Mira aquí la conversación que tuve directamente con Víctor, administrador del foro Prestashop:
      https://www.prestashop.com/forums/topic/641842-solucionado-a%C3%B1adir-selector-de-provincias-en-formulario-de-registro/?tab=comments#comment-2647853

      1. Se me había olvidado decirte que he tenido que grabar en la tabla ps_address los campos firstname y lastname porque daba un error cuando el cliente intentaba comprar.

        1. Hola buenas tardes,

          He seguido los pasos y efectivamente no me graba en la tabla ps_address los campos firstname y lastname, ¿cómo puedo conseguir esto?.

          Muchas Gracias por compartir vuestros conocimientos.

  2. Hola Luis, Muchas gracias por tus aportes.
    Quisiera saber como agregar un campo «seudonimo» para el registro del cliente y poderlo utilizar en las plantillas de correo como cuando se utiliza {fistname}.

  3. Hola Luis,

    Perdona que te moleste, pero al añadir nuevos campos del registro, al enviar los datos no me aparece un mensaje confirmando que se ha enviado la solicitud.

    ¿Cómo lo puedo conseguir?.

    Gracias por tu gran ayuda.

    Saludos.

    1. Hola Jose, no es molestia.
      🙂

      Mira, yo lo que hago es realizar las comprobaciones en el controlador, por ejemplo…

      $message = Tools::getValue(‘message’);

      if (!($from = trim(Tools::getValue(‘email’))) || !Validate::isEmail($from)) {
      $this->context->controller->errors[] = $this->trans(‘Invalid email address.’, array(), ‘Shop.Notifications.Error’);
      } elseif (!Validate::isCleanHtml($message)) {
      $this->context->controller->errors[] = $this->trans(‘Invalid message’, array(), ‘Shop.Notifications.Error’);
      } elseif (!$_POST[‘name’]) {
      $this->context->controller->errors[] = $this->trans(‘El campo nombre no puede estar vacío.’, array(), ‘Shop.Notifications.Error’);
      } elseif (!$_POST[‘message’]) {
      $this->context->controller->errors[] = $this->trans(‘El campo descripción de la pieza no puede estar vacío.’, array(), ‘Shop.Notifications.Error’);
      }

      Y en el mismo controlador, le paso el valor a la vista (muestro un ejemplo de cosas que ya tengo hechas)…

      // Destruimos valores para que el formulario aparezca limpio
      if (!count($this->context->controller->errors)) {
      $customer = $this->context->customer;

      if (!$customer->id) {
      $customer->getByEmail($from);
      }

      // Aplicamos la conversión de variables.
      $var_list[‘{name}’] = $_POST[‘name’];
      $var_list[‘{telefono}’] = $_POST[‘telefono’];
      $var_list[‘{email}’] = $_POST[‘email’];
      $var_list[‘{message}’] = $_POST[‘message’];
      $var_list[‘{messageAditional}’] = $_POST[‘messageAditional’];

      $this->envioMailSolicitaTuPieza($var_list);

      $this->context->smarty->assign([
      ‘datos’ => »
      ]);

      $this->context->controller->success[] = $this->trans(‘Your message has been successfully sent to our team.’, array(), ‘Modules.Contactform.Shop’);
      }
      else{
      $this->context->smarty->assign([
      ‘datos’ => $_POST
      ]);
      }

      Por último, solo tendrás que crear la variable en smarty y listo.

      Espero que te sirva el ejemplo.
      Un saludo.

      1. Hola Luis,

        Ante todo gracias por tu respuesta.

        Lo que ocurre es que ando bastante perdido y no logro entender donde poner este código.

        No sé si me expliqué bien en mi anterior consulta, yo sólo quiero que al enviar los datos de creación de la cuenta (que los crea bien en las tablas clientes y direcciones) aparezca un mensaje en pantalla indicando al nuevo cliente que «Su solicitud ha sido enviada. En breve nos pondremos en contacto con usted».

        No sé donde poner el código que me has indicado, si en ObjectModel.php, en la función validate de Customerform.php, o en Customerformatter.php

        Espero que me ayudes a encontrarme, jeje

        Gracias.

        1. Hola Jose, en el controlador que hayas utilizado has de crear la variable y pasarla a la vista.
          Y en la vista recuperarla y poner el condicional de… si existe la pinto, si no, no muestro nada.

  4. Buenas luis, muchas gracias por el aporte.
    Mi pregunta es como hago que dependiendo del tratamiento me aparezcan solo algunos campos.

    1. Hola Rosibel, gracias por tu comentario.

      Cuando hablas acerca del tratamiento, ¿te refieres a diferenciar entre sexo a la hora de realizar el registro?
      Si es así, tendremos que tocar JS, y dependiendo del valor de option Sr / Sra mostrar unos inputs u otros.

      Ya me confirmas si te referías a eso.
      Saludos!

        1. Entonces lo que debes hacer con javascript es en la opción onchange si es selector, llamar a un JS que pinte los campos que deseas para cada caso.

          1. ¿Te refieres a cuando pulsas sobre «Registrarse»?
            Si es así, lo más sencillo es aplicar la redirección desde la vista.
            Pero lo correcto sería aplicarlo en el controlador.

  5. Hola Luis,

    Perdona que te moleste, pero al añadir nuevos campos del registro en los formularios de registro y edición de datos, si un cliente quiere modificar su contraseña, al darle al botón Enviar me da un error.
    Utilizo Prestashop 1.7.2.4 y al ponerlo en modo depuración me indica el error en la línea 275 del archivo CustomerForm.php -> undefined index: password

    ¿Cómo puedo solucionar dicho error?.

    Gracias por tu gran ayuda.

    Saludos.

      1. Hola Luis,

        Los campos que tengo en el formulario de registro son:
        Nombre, Apellidos, Empresa, Comercial, NIF/CIF, Teléfono, Móvil, E-mail, Dirección, Código Postal y Población.

        No tengo el campo contraseña en el formulario pues lo que quiero es que el cliente se registre, pero yo luego lo activo, le asigno una contraseña y le pongo la provincia, desde el back office.

        Los campos que tengo en el formulario de edición de datos personales son los mismos que en el de creación de cuenta, añadiendo el campo nueva contraseña.
        En el momento actualizo algún dato como dirección o nueva contraseña, me da el error.

        Un saludo.
        Muchas gracias.

  6. Se me olvidaba, el error que me aparece es el siguiente:

    ContextErrorException in CustomerForm.php line 281: Notice: Undefined index: password

    in CustomerForm.php line 281
    at ErrorHandler->handleError(‘8’, ‘Undefined index: password’, ‘/var/www/vhosts/joyasyrelojesonline.com/2ll.es/override/classes/form/CustomerForm.php’, ‘281’, array(‘clearTextPassword’ => ‘1’, ‘newPassword’ => ‘1’, ‘ok’ => false, ‘field’ => ‘password’, ‘errors’ => array(‘Combinación dirección de correo electrónico/contraseña, incorrecta’))) in CustomerForm.php line 281
    at CustomerFormCore->submit() in IdentityController.php line 53
    at IdentityControllerCore->initContent() in Controller.php line 205
    at ControllerCore->run() in Dispatcher.php line 379
    at DispatcherCore->dispatch() in index.php line 28

    1. Así a ojo y sin revisar el código, tiene pinta de que has dejado en el controller la validación para el campo «password», deberías eliminar esta validación. ¿Cómo has llamado al input «nueva contraseña»?, ¿qué id tiene?

      1. El input de la nueva contraseña tiene el id new_password.

        Lo que ocurre es que ese input me lo pone el directamente en el formulario de edición de datos cuando la cuenta ya está creada.

        En ese formulario de edición de datos aparecen guardados los datos de los campos obligatorios como Nombre, Apellidos, DNI, Teléfono, E-mail, Dirección, Código Postal y Población y supongo que en ese input de Nueva contraseña debería de aparecer la contraseña que le he dado yo en el dashboard con posibilidad de cambiarla y no aparece.

        He intentado que aparezca utilizando la sentencia
        $params[‘passwd’] = $customer->passwd;
        en la función fillFromCustomer de CustomerForm.php pero no me hace caso.

        Muchas gracias por tu interés.

        Saludos.

        1. Hola Jose, disculpa por la demora en contestar, pero la carga de trabajo que tengo no es poca. Ya te puedes imaginar.

          El input que añades en el formulario de registro se añade también en el de edición de datos, correcto.
          El formulario es compartido, yo hice en alguna ocasión que dependiendo de flujo de ejecución mostrase unos campos u otros, pero no merece la pena.

          Recuerda en cada cambio que hagas limpiar la caché para que los cambios se vean reflejados.

          Doy por hecho que cuando haces un díe($customer->passwd) el valor que te pinta es el que se insertó inicialmente en new_password, ¿verdad?, ¿este campo new_password en la base de datos bajo qué columna queda registrado?

          Lo que me indicabas en un comentario anterior, donde decías que te saltaba un error respecto a que no se reconocía «password», también tiene su lógica, ya que por lo que entiendo, has quitado el campo password y has añadido el campo new_password, pero en el controller se sigue validando password.

          No sé si en este punto estoy perdido con los cambios ya que sin ver el código fuente es difícil dar un buen aporte.
          Si ves que no avanzas, puedes contactarme en mi correo personal y hablamos acerca de como puedo ayudarte.

          Saludos!

          1. Hola Luis,

            Mi problema es que aunque no quite el campo password en la creación de la cuenta, luego una vez se ha creado la cuenta y yo he activado el cliente, si ese cliente quiere modificar cualquiera de sus datos personales, se produce el error de ContextErrorException in CustomerForm.php line 281: Notice: Undefined index: password

            Es como si no guardara el password o no la pudiera recuperar, pues en ese formulario de modificación de datos personales, el campo contraseña aparece vacío.

            Reitero mi agradecimiento a tu interés.
            Saludos!

  7. Hola Luis,

    Te he enviado por mail mi URL para ver si le puedes echar un vistazo.

    Yo sigo peleando y creo que el problema es cuando una vez creada la cuenta queremos modificar algún dato que pertenece a la tabla adress como puede ser el dni, no lo actualiza.

    Perdona las molestias

  8. Hola luis.
    Todo me ha funcionado genial, tuve solo un par de errores que solucione con el modo depuración y buscando en el código, ahora solo tengo un problema cuando creo un usuario e inicio sesion en el formulario de «direcciones» no sale el dni, pero en la base de datos si quedo guardado en la tabla ps_address, no he añadido nada distinto de lo que has puesto en tu tutorial, que podría estar pasando?
    por cierto gracias por tan grandioso aporte, soy nuevo en prestashop.

  9. Buenos dias.
    Por que en vez de meter el cambio en la clase customer lo metes en ObjectModel. Entiendo que es un cambio de la clase Customer

    1. Hola Juan, tocamos ObjectModel ya que el campo dni por defecto está en la tabla ps_address, es decir que corresponde a address y no a customer.

      Aquí se indica la inserción…
      // Dejamos valores fijos como el id_country y el nombre de la dirección.
      // Para mejorar esta consulta y que sea dinámica, hacer join con ps_country.
      if($this->id > 0 && strlen($this->dni) == 9){
      Db::getInstance()->execute( ‘INSERT INTO `’._DB_PREFIX_.’address`
      (`id_country`,`id_customer`,`alias`,`dni`,`date_add`,`date_upd`)
      VALUES (6,’.(int) $this->id.’,\’Mi dirección\’,\».$this->dni.’\’,NOW(),NOW())’);
      }

  10. Hola Luis, podrías ayudarme un momento?
    Estoy intentando de adicionar el campo zone dentro del registro de dirección de mi prestashop. es versión 1.7.4
    El objetivo de adicionar es para que el cliente pueda escoger la zona en la cual requiere su despacho. Paralemente configuré en los transportistas, las condiciones y valores de cada zona. Por eso requiero añadir dicho a modo de filtro de transportistas.

    Desde ya te lo agradezco mucho,

  11. Buenas noches, saludos soy nuevo usando prestashop. Quisiera saber si hay alguna manera de ubicar los archivos para modificarlos. Tengo un requerimiento donde necesito 2 drowpdown list una que me filtre el otro. Si estuviera programando en codeigniter lo hiciera rápido con jquery y php y mysql. Pero prestashop tengo solo 4 días y no consigo nada. y conseguí algo que esto Módulo AJAX Dropdown Categories pero tiene un costo de 49$ y considero que se puede hacer. Gracias por tus aportes te escribo desde venezuela

    1. Hola Jose, creo no estar entendiendo tu pregunta.
      Si te refieres a cómo localizar el archivo que debes modificar para obtener un resultado en concreto, ten en cuenta que estamos trabajando en la versión 1.7.x de Prestashop sobre el framework Symfony, y esto es MVC. Deberías tener claro si no lo tienes ya, como trabajar programación orientada a objetos.
      Si esto que comento no tiene que ver con tu pregunta, por favor detalla un poco más, saludos.

  12. Cómo estás, estaba leyendo y vi algo que me interesó no se si me puedas dar un poco de luces en aquello. Dentro de direcciones quisiera añadir un campo de fecha sin modificar la tabla original, como con una ps_address_extra. y no le entendí muy bien lo del join.

    Muchas gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Responsable de los datos: Luis María Jordán Muñoz | Finalidad: Responder a la solicitud que me envíes y ofrecerte información | Legitimación: Tu consentimiento de forma expresa | Destinatario: Nicalia mi proveedor de hosting | Derechos: Tienes derecho al acceso, rectificación, supresión, limitación, portabilidad y olvido, para más información, te dejo enlace a mi política de privacidad ... enlace

Scroll al inicio
Ir arriba