Jump to content

Ordenar campos en pa pagina de direccion de un cliente


piribipipi

Recommended Posts

Hola, tengo un problema que parece sencillo pero no se como solucionarlo...

 

Quiero ordenar los campos en la pagina de direccion de un cliente. Quiero que tenga el orden siguiente:

 

....

Estado

Codigo Postal

Pais

....

 

Modifique el formato de la direccion para el pais, y tambien comprobe que a la plantila se le pasa un array con el orden de los campos, y ese orden esta correcto!!!

 

Pero al mostrar la plantilla, me muestra el siguiente orden:

.....

Estado

Pais

Codigo Postal

.....

 

Hay algun js que este modificando esto????? No tiene sentido!!!!! Si cambio por ejemplo el orden de Nombre y Apellidos en el Formato de la Direccion, en la pagina se muestra correctamente ese cambio!! :S

 

Gracias! ojala alguien pueda ayudar!

 

Saludos

Link to comment
Share on other sites

  • 4 months later...

Hola, al parecer estás intentando cambiar el orden de los campos para las nuevas direcciones. 

Cuando un cliente modifica algo en su dirección el tpl toma el orden do que se haya estipulado en el backoficce para el país del cliente, o mejor el país que está asignado a la dirección, pero si lo que quiere es añadir una nueva dirección, entonces las cosas cambian.

 

El formato para una dirección que aun no tiene un país asignado es determinado por un campo en la base de datos referente a un país que no existe. Es un valor por defecto.

 

He dado muchas vueltas pero he dado con la solución, para cambiar el orden de los campos  y tener el control absoluto do que pasa en la pagina del formulario de dirección.

Intentaré ser breve:

 

Cambiar orden de los campos del formulario de dirección del cliente prestashop 1.6

 

Archivos a modificar:

tutema/address.tpl

controllers/front/AddressController.php (con override)

controllers/admin/AdminCountriesController.php (con override)

 

Cambios en el backoficce:

ubicación >> paises >> tu país predeterminado >> Address format

ubicación >> paises >> otros paises >> Address format

 

1) método sin tocar la BD: 

 

Paso 1:

En backoficce>>ubicación >> países, elijas un país para ser el predeterminado y tome nota del numero del ID.

 

Copiar el archivo controllers/front/AddressController.php en la carpeta override/controllers/front

Abrir el archivo con un editor (Notpad++) y buscar esta linea:

$id_country = is_null($this->_address)? 0 : (int)$this->_address->id_country;

Cambiar el numero 0 por el numero del id de tu país predeterminado.

Ejemplo: si el país tiene el ID = 6 la linea debe quedar así:

$id_country = is_null($this->_address)? 6 : (int)$this->_address->id_country;

Con esta modificación todos los cliente que aun no tienen un país asignado verán el formato de dirección de tu país predeterminado.

 

Paso 2 (opcional):

Copiar el archivo controllers/admin/AdminCountriesController.php en la carpeta override/ controllers/admin

Abrir el archivo con un editor (Notpad++) y buscar estas lineas:

$default_layout_tab = array(
array('firstname', 'lastname'),
array('company'),
array('vat_number'),
array('address1'),
array('address2'),
array('postcode', 'city'),
array('Country:name'),
array('phone'),
array('phone_mobile'));

Cambiar el orden de los arrays y poner en el orden que quieres que sea el orden predeterminado.

 

Con esta modificación se creará un nuevo orden predeterminado para aplicar en el Address format en el backoficce.

 

Paso 3:

en el backoficce ir a ubicación >> paises >> tu país predeterminado >> Address format

Modifique el orden de los campos de tu país predeterminado, de la manera que quieres que aparezca para los clientes que quieren modificar la dirección o añadir una dirección nueva o primera dirección.

Hay que tener en cuenta que la modificación también afectará los formatos de dirección en el resume del pedido en el backoficce y en la pagina “mis direcciones” del front-oficce.

El numero de ID del país que vas a utilizar como predeterminado es el numero que has utilizado en el archivo controllers/front/AddressController.php

 

A continuación modifique los demás países (todos) según el orden y campos que quieres para cada uno o simplemente pinche en “Use the default format “ para aplicar el formato que has definido en AdminCountriesController.php.

Hay que notar que cada país usa un formato de dirección diferente del otro, unos tienen estado otros no, unos el CP viene delante del nombre de la calle, otros el apellido está delante del nombre etc... conviene pesquisar un poco antes de hacer las modificaciones.

 

 

Paso 4 (opcional):

Modificar el archivo tutema/address.tpl

Es posible que ni todos los campos que has predefinido en los pasos anteriores salga de la manera prevista, para terminar con la modificación es necesario modificar el archivo tutema/address.tpl.

Si sabes como tocar los archivos tpl puedes hacer modificaciones para añadir instrucciones cerca de los campos o modificar los campos que no están en el Address format.

Se podrá cambiar directamente en el tpl el orden de los campos que estén después de “{/foreach}”.

No intente modificar el orden de los campos que están antes de esta linea porque no surtirá efecto.

 

Como verás el orden de estos campos se cambian en el backoficce pero es necesario que estén antes de “{/foreach}” para que salgan en la orden correcta. Los demás campos solo serán visibles según el tpl si no están predefinidos en el backoffice.

Quizá, según la configuración de tus preferencias para el registro de los clientes, quieras cambiar también el archivo authentication.tpl .

 

2) Método con cambios en la BD:

 

Paso 1:

Modificar en la base de datos el campo `format` de la tabla ps_address_format donde el ID es = 0.

Con esta modificación todos los cliente que aun no tienen un país asignado verán el formato de dirección de tu has configurado en la base de datos.

 

A continuación realizar los pasos 2, 3 y 4.

 

 

A saber:

El formato predeterminado del front-oficce está determinado en la base de datos con el ID 0, por eso o cambiamos la base de datos o cambiamos el 0 en el archivo address.tpl.

 

El formato predeterminado del backoficce en la configuración de los países se determina en el archivo AdminCountriesController.php .

 

 

Espero que la información sea de ayuda.

 

Link to comment
Share on other sites

  • 2 months later...

COmo puedo cambiar el orden al momento de registrar una direccion como nuevo usuario actualmente se encuentra de esta manera: 

ciudad, Pais, telefono fijo, telefono movil, estado y yo quiero que Pais, provincia y ciudad se encuentren juntos debajo de telefonos ? cual es la manera mas sencilla de hacerlo 

agradezco de antemano el apoyo . Muchas Gracias

Link to comment
Share on other sites

  • 1 year later...

Entras desde el backoffice a, localizacion -> pais 

Entras a modificar el pais que quieres y vas a conseguirte un textarea de este tipo 

 

firstname lastname
company
vat_number
address1
address2
postcode city
Country:name
State:name
phone
phone_mobile
 
Mueves el orden de los campos y listo!
 
Esto es texto plano, pero asi funciona.
 
Saludos!!
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...