A ver.. correos nos ha mandado un modulo en el que solo pilla el campo de address del prestashop, el problema, es que hay mucha gente que al comprar, lo rellena mal, y hemos añadido los campos vía, número y puerta, para facilitar que a la hora de poner la dirección, se haga bien.
Ahora bien, a la hora de usar ese modulo de correos para sacar las etiquetas desde prestashop, sólo pilla el campo address, lo cual es un impedimento, ya que si se envían con esas etiquetas, no llegaría ningún paquete, con el considerable mosqueo del cliente y los costes de volverlo a enviar, :S
En vez de llegar a la "Calle las barcas 12, 12", llegaría a una dirección que se llamara "las barcas", dirección que no existe, obviamente, ya que no tiene ni tipo de vía, ni número, ni puerta.
Por el momento, tengo correctamente que a la hora de ingresar los datos se haga en los campos address1, vía, numero y puerta de la tabla ps_address.
Ahora bien, lo qe necesito es juntar esos valores en el campo address1
Si por ejemplo ingresan...
via: Calle
address1: Las Barcas
número: 7
puerta: 36
Se haga en el campo address1 como "Calle Las Barcas 7, 36"
Tengo habilitado el pedido rápido y esto es lo que tengo puesto...
en authentification.tpl
Código:
Adress.php{elseif $field_name eq "via"} <label for="via">{l s='Tipo de vía'} <sup>*</sup></label> <div></div> <select id="via" name="via"> <option selected="selected">Seleccione su tipo de vía</option> <option value="Alameda">Alameda</option> <option value="Autopista">Autopista</option> <option value="Autovia">Autovía</option> <option value="Avenida">Avenida</option> <option value="Barriada">Barriada</option> <option value="Bulevar">Bulevar</option> <option value="Calle">Calle</option> <option value="Camino">Camino</option> <option value="Carretera">Carretera</option> <option value="Glorieta">Glorieta</option> <option value="Partida">Partida</option> <option value="Pasaje">Pasaje</option> <option value="Paseo">paseo</option> <option value="Plaza">Plaza</option> <option value="Ronda">Ronda</option> <option value="Sector">Sector</option> <option value="Urbanizacion">Urbanización</option> <option value="Travesia">Travesía</option> <option value="Via">Vía</option> </select> </div> {elseif $field_name eq "address1"} <div class="required form-group"> <label for="address1">{l s='Address'} <sup>*</sup></label> <input type="text" class="form-control" name="address1" id="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}" /> </div> {elseif $field_name eq "address2"} <div class="form-group is_customer_param"> <label for="address2">{l s='Address (Line 2)'} <sup>*</sup></label> <input type="text" class="form-control" name="address2" id="address2" value="{if isset($smarty.post.address2)}{$smarty.post.address2}{/if}" /> </div> {elseif $field_name eq "numero"} <div class="required form-group"> <label for="numero">{l s='Numero'} <sup>*</sup></label> <input type="text" class="form-control" name="numero" id="numero" value="{if isset($smarty.post.numero)}{$smarty.post.numero}{/if}" /> </div> {elseif $field_name eq "puerta"} <div class="required form-group"> <label for="puerta">{l s='Puerta'} <sup>*</sup></label> <input type="text" class="form-control" name="puerta" id="puerta" placeholder="En caso de ser un bajo, escribir BAJO" value="{if isset($smarty.post.puerta)}{$smarty.post.puerta}{/if}" /> </div>
Código:
AdminAddressesController.phppublic $address1; public $numero; public $puerta; public $via; 'address1' => array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true, 'size' => 128), 'via' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 64), 'numero' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 64), 'puerta' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 64),
Código:
Todo esto funciona bien, pero ingresa los select cada uno en su campo.public function initPageHeaderToolbar() { if (empty($this->display)) $this->page_header_toolbar_btn['new_address'] = array( 'href' => self::$currentIndex.'&addaddress&token='.$this->token, 'desc' => $this->l('Add new address', null, null, false), 'icon' => 'process-icon-new' ); parent::initPageHeaderToolbar(); } public function renderForm() { $this->fields_form = array( 'legend' => array( 'title' => $this->l('Addresses'), 'icon' => 'icon-envelope-alt' ), 'input' => array( array( 'type' => 'text_customer', 'label' => $this->l('Customer'), 'name' => 'id_customer', 'required' => false, ), array( 'type' => 'text', 'label' => $this->l('Identification Number'), 'name' => 'dni', 'required' => false, 'col' => '4', 'hint' => $this->l('DNI / NIF / NIE') ), array( 'type' => 'text', 'label' => $this->l('Numero'), 'name' => 'numero', 'required' => false, 'col' => '4', 'hint' => $this->l('Numero!') ), array( 'type' => 'text', 'label' => $this->l('Puerta'), 'name' => 'puerta', 'required' => false, 'col' => '4', 'hint' => $this->l('Puerta!') ), array( 'type' => 'text', 'label' => $this->l('via'), 'name' => 'via', 'required' => false, 'col' => '4', 'hint' => $this->l('via!') ), array( 'type' => 'text', 'label' => $this->l('Address alias'), 'name' => 'alias', 'required' => true, 'col' => '4', 'hint' => $this->l('Invalid characters:').' <>;=#{}' ), array( 'type' => 'text', 'label' => $this->l('Home phone'), 'name' => 'phone', 'required' => false, 'col' => '4', 'hint' => Configuration::get('PS_ONE_PHONE_AT_LEAST') ? sprintf($this->l('You must register at least one phone number.')) : '' ), array( 'type' => 'text', 'label' => $this->l('Mobile phone'), 'name' => 'phone_mobile', 'required' => false, 'col' => '4', 'hint' => Configuration::get('PS_ONE_PHONE_AT_LEAST') ? sprintf($this->l('You must register at least one phone number.')) : '' ), array( 'type' => 'textarea', 'label' => $this->l('Other'), 'name' => 'other', 'required' => false, 'cols' => 15, 'rows' => 3, 'hint' => $this->l('Forbidden characters:').' <>;=#{}' ), ), 'submit' => array( 'title' => $this->l('Save'), ) );
¿Como haría para que ingresara los select de vía, address, número y puerta en el campo de address1?