Jump to content

[SOLUCIONADO]Formulario de Contacto en Product.tpl


MaryDey

Recommended Posts

Hola a todos! Es la primera vez que escribo aqui, pero he buscado y rebuscado y no encuentro ninguna solucion a mi problema.

 

Necesito incorporar un formulario de contacto en la pagina de producto para que los usuarios puedan pedir informacion.

 

He cogido el código de contact-form.tpl y lo he añadido a product.tpl, he conseguido que salga en la medida que quiero y queda muy bonito, pero no envía los mensajes y tampoco me dá ningun error.

 

¿Sabéis por que puede ser?  ¿tengo que tocar algun archivo mas para que se pueda enviar los mensajes a traves de la pagina product.tpl ?

 

Este es el codigo que he copiado en Product.tpl

 

             {capture name=path}{l s='Contact'}{/capture}
<h3 class="bottom-indent">
   {l s='Pedir Información sobre '}{$product->name|escape:'html':'UTF-8'}
</h3>
   {if isset($confirmation)}
<p class="alert alert-success" style="margin-top:80px;"><h1>{l s='Your message has been successfully sent to our team.'}</h1></p>
<ul class="footer_links clearfix">
<li>
            <a class="btn btn-default button button-small" href="{$base_dir}">
                <span>
                    <i class="icon-chevron-left"></i>{l s='Home'}
                </span>
            </a>
        </li>
</ul>
{elseif isset($alreadySent)}
<p class="alert alert-warning" style="margin-top:80px;">{l s='Your message has already been sent.'}</p>
<ul class="footer_links clearfix">
<li>
            <a class="btn btn-default button button-small" href="{$base_dir}">
                <span>
                    <i class="icon-chevron-left"></i>{l s='Home'}
                </span>
            </a>
        </li>
</ul>
{else}
{include file="$tpl_dir./errors.tpl"}
<form action="{$request_uri|escape:'html':'UTF-8'}" method="post" class="contact-form-box" enctype="multipart/form-data">
<fieldset>
        <div class="clearfix" style="border: 1px solid #A6AAAD;padding: 7px;background-color: #056b8f;color: #fff;">
            <div class="col-xs-12 col-md-3" style="width: 82%;">
                <div class="form-group selector1">
                  <p class="form-group">
                    <label for="email">{l s='Correo Electrónico'}</label>
                    {if isset($customerThread.email)}
                        <input class="form-control grey" type="text" id="email" name="from" value="{$customerThread.email|escape:'html':'UTF-8'}" readonly="readonly" />
                    {else}
                        <input class="form-control grey validate" type="text" id="email" name="from" data-validate="isEmail" value="{$email|escape:'html':'UTF-8'}" />
                    {/if}
                     <input type="hidden" name="id_contact" value="{$contact.id_contact|intval}" />
                </p>
                {if $fileupload == 1}
                    <p class="form-group">
                        <label for="fileUpload">{l s='Attach File'}</label>
                        <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
                        <input type="file" name="fileUpload" id="fileUpload" class="form-control" />
                    </p>
                {/if}
            </div>
            <div class="col-xs-12 col-md-9">
                <div class="form-group">
                    <label for="message">{l s='Mensaje'}</label>
                    <textarea class="form-control" id="message" name="message" style="line-height:2.42857; width:324px;">{if isset($message)}{$message|escape:'html':'UTF-8'|stripslashes}{/if}{$product->name|escape:'html':'UTF-8'}:</textarea>
                </div>
            </div>
        </div>
        <div class="submit">
            <button type="submit" name="submitMessage" id="submitMessage" class="button btn btn-default button-medium" style=" background-color:#950341;"><span>{l s='Pedir Información'}<i class="icon-chevron-right right"></i></span></button>
</div>
</fieldset>
</form>
{/if}
{addJsDefL name='contact_fileDefaultHtml'}{l s='No file selected' js=1}{/addJsDefL}
{addJsDefL name='contact_fileButtonHtml'}{l s='Choose File' js=1}{/addJsDefL}

 

 

 

Muchas gracias.

Edited by SaraB (see edit history)
  • Like 1
Link to comment
Share on other sites

Para eso yo tengo un módulo; no es una solución exacta a tu pregunta, pero quizá pueda interesarte: http://store.nemops.com/free-modules/32-ask-a-question.html#.U6lmv9N9hEI

 

Añade una pestañita en la ficha del producto y los clientes pueden hacer preguntas y tú responderlas; y quedan públicas de manera que si más personas tienen dudas a lo mejor ya están resueltas.

 

Un saludo.

Link to comment
Share on other sites

Muchas Gracias Rsaiz por tu contestación, pero ese modulo ya lo he probado y no me sirve.

 

He incorporado el formulario de contacto dentro de la ficha de producto (adjunto imagen) lo único que me debe de faltar algo en algún controller para que envíe el mensaje, por que sale todo bien, menos la acción submit.

 

Tengo prestashop 1.6 y lo que he visto en los foros es para versiones anteriores y tampoco me vale.

formularioPrestashop.jpg

Link to comment
Share on other sites

Okis. Si sólo modificaste el tpl, tiene pinta de que tienes que modificar el controller que muestra la ficha del producto y añadir ahí lo necesario para que reciba el formulario y te envíe la confirmación; no sé si con copiar el postProcess de ContactController.php en ProductController sería suficiente... en caso de que no lo hayas probado ya, claro.

Link to comment
Share on other sites

Genial, ¡me alegro!

 

Si puedes, edita el titulo del tema para marcarlo como solucionado y que lo cierre algún moderador si pasa por aquí (editando el primer mensaje, pulsando en editar, y después en "Usar editor completo", añadiendo la palabra "Solucionado" al titulo, esto ayudara, a mantener una mayor organización en el foro).

Link to comment
Share on other sites

  • 5 months later...

Hola.

 

Sé que este post está cerrado desde hace 6 meses.

Quería agradecer publicamente a @MaryDey y @rsaiz por el mismo, además de agregar mi granito de arena.

 

 

Después de una tarde de frustración, y una mañana completa de investigación y pruebas en una tienda Version 1.6.09, por fin pude tener un form de contacto en la página de producto. Me tomo la libertad de publicar mis resultados aquí, a manera de contribución y complemento al post.

 

Voy por pasos largos:

 

product.tpl

 

Primero, me pareció mejor organizado poner el form de contacto del lado izquierdo, en ése espacio vacío entre las imagenes del producto, y la sección de más información.

post-790958-0-66702600-1418853310_thumb.png

 

 

 

Así, en product.tpl, busqué el div  correspondiente:

<!-- left infos-->
<div class="pb-left-column col-xs-12 col-sm-4 col-md-5">

y, al final del mismo justo antes del </div> de cierre puse el mismo código de @MaryDey, al cual, después de generarme varios errores, le hice  cambios:

{* product contact form *}
                                                
                                                        
          
        <h3 class="bottom-indent">
           {l s='Request info about '}{$product->name|escape:'html':'UTF-8'}
        </h3>
           {if isset($confirmation)}
        <p class="alert alert-success" style="margin-top:80px;"><h1>{l s='Your message has been successfully sent to our team.'}</h1></p>
        <ul class="footer_links clearfix">
        <li>
                    <a class="btn btn-default button button-small" href="{$base_dir}">
                        <span>
                            <i class="icon-chevron-left"></i>{l s='Home'}
                        </span>
                    </a>
                </li>
        </ul>
        {elseif isset($alreadySent)}
        <p class="alert alert-warning" style="margin-top:80px;">{l s='Your message has already been sent.'}</p>
        <ul class="footer_links clearfix">
        <li>
                    <a class="btn btn-default button button-small" href="{$base_dir}">
                        <span>
                            <i class="icon-chevron-left"></i>{l s='Home'}
                        </span>sobre
                    </a>
                </li>
        </ul>
        {else}
        {include file="$tpl_dir./errors.tpl"}
        
        <form action="{$request_uri|escape:'html':'UTF-8'}" method="post" class="contact-form-box" enctype="multipart/form-data">
        <fieldset>
                <div class="clearfix" style="border: 1px solid #A6AAAD;padding: 7px;background-color: #056b8f;color: #fff;">
                    <div class="col-xs-12 col-md-3" style="width: 82%;">
                        <div class="form-group selector1">
                          <p class="form-group">
                            <label for="email">{l s='Email address'}</label>
                            {if isset($customerThread.email)}
                                <input class="form-control grey" type="text" id="email" name="from" value="{$customerEmail|escape:'html':'UTF-8'}" readonly="readonly" />
                            {else}
                                <input class="form-control grey validate" type="text" id="email" name="from" data-validate="isEmail" value="{$customerEmail|escape:'html':'UTF-8'}" />
                            {/if}
                             <input type="hidden" name="id_contact" value="2" />
                             <input type="hidden" name="id_product" value="{$product->id|intval}" />
                        </p>                        
                    </div>
                    <div class="col-xs-12 col-md-9">
                        <div class="form-group">
                            <label for="message">{l s='Message'}</label>
                            <textarea class="form-control" id="message" name="message" style="line-height:2.42857; width:324px;">{if isset($message)}{$message|escape:'html':'UTF-8'|stripslashes}{/if}{$product->name|escape:'html':'UTF-8'}:</textarea>
                        </div>
                    </div>
                </div>
                <div class="submit">
                    <button type="submit" name="submitMessage" id="submitMessage" class="button btn btn-default button-medium" style=" background-color:#950341;"><span>{l s='Send'}<i class="icon-chevron-right right"></i></span></button>
        </div>
        </fieldset>
        </form>
        {/if}
        
                                                
                                                
{* end contact form *}	

A simple vista se puede apreciar que eliminé la primera línea:

{capture name=path}{l s='Contact'}{/capture}

Esto para evitar que la pequeña barrita de navegación, justo abajo del menú horizontal sea la que le corresponde al producto, y no la que se muestra en el contact form.

 

post-790958-0-72253400-1418853891_thumb.png

 

También se puede observar que regresé los textos dentro del tpl a su version original en Inglés. Ésto para permitirme traducir los mismos desde el menu de traducciones, lo mostraré mas adelante.

 

Product no tiene acceso ni a $customerThread.email, tampoco a $email; por lo que genera un error.

Así, en los dos input text con id="email" (lineas 192 y 194 del código que puse arriba ) cambié sus propiedades value a

value="{$customerEmail|escape:'html':'UTF-8'}"

En las lineas 196 y 197, tenemos lo siguiente:

<input type="hidden" name="id_contact" value="2" /> 
<input type="hidden" name="id_product" value="{$product->id|intval}" />

Esto es importante: El valor de id_contact lo puse a 2, corresponde a la dirección de correo de Servicio a Cliente en mi tienda, configurado en el menú Clientes, Contacto. También aquí se generaba un error al no estar accesibles los id de contacto en el entorno del producto.

 

La segunda línea de código, me sirve para pasarle el id del producto al controller, para poder enviar el mensaje de acuerdo al mismo :) También lo veremos más adelante.

 

 

Por último, las dos lineas addJsDefL al final del código de @MaryDey, las puse hasta el final de product.tpl justo antes del {/strip}

{addJsDefL name='contact_fileDefaultHtml'}{l s='No file selected' js=1}{/addJsDefL}
{addJsDefL name='contact_fileButtonHtml'}{l s='Choose File' js=1}{/addJsDefL}
{/strip}
{/if}

Aunque, en mi modificación, me parece que éstas llamadas no son necesarias, veremos el por qué más adelante.

 

 

Sigamos ahora con

 

ProductController.php

 

La función postProcess(), la puse justo después de  protected $category; y arriba de la funcion setMedia()

 

Aquí la función modificada, con las instrucciones que eliminé comentadas:

       /**
	 * Start forms process 
	 * @see FrontController::postProcess()
	 * Agregar contact form a product
	 */
	public function postProcess() {
		if (Tools :: isSubmit('submitMessage')) {
			/*$extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg');*/
			/*$fileAttachment = Tools::fileAttachment('fileUpload');*/
			$message = Tools :: getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags.

			/*$id_contact = (int)(Tools::getValue('id_contact'));*/
			 

			if (!($from = trim(Tools :: getValue('from'))) || !Validate :: isEmail($from))
				$this->errors[] = Tools :: displayError('Invalid email address.');
			else
				if (!$message)
					$this->errors[] = Tools :: displayError('The message cannot be blank.');
				else
					if (!Validate :: isCleanHtml($message))
						$this->errors[] = Tools :: displayError('Invalid message');
					else
						if (!($id_contact = (int) (Tools :: getValue('id_contact'))) || !(Validate :: isLoadedObject($contact = new Contact($id_contact, $this->context->language->id))))
							$this->errors[] = Tools :: displayError('Please select a subject from the list provided. ');
			/*else if (!empty($fileAttachment['name']) && $fileAttachment['error'] != 0)
				$this->errors[] = Tools::displayError('An error occurred during the file-upload process.');
			else if (!empty($fileAttachment['name']) && !in_array( Tools::strtolower(substr($fileAttachment['name'], -4)), $extension) && !in_array( Tools::strtolower(substr($fileAttachment['name'], -5)), $extension))
				$this->errors[] = Tools::displayError('Bad file extension');*/
			else {
				$customer = $this->context->customer;
				if (!$customer->id)
					$customer->getByEmail($from);

				$contact = new Contact($id_contact, $this->context->language->id);

				/*$id_order = (int) $this->getOrder();*/
				$id_order = 0;

				if (!((($id_customer_thread = (int) Tools :: getValue('id_customer_thread')) && (int) Db :: getInstance()->getValue('
										SELECT cm.id_customer_thread FROM ' . _DB_PREFIX_ . 'customer_thread cm
										WHERE cm.id_customer_thread = ' . (int) $id_customer_thread . ' AND cm.id_shop = ' . (int) $this->context->shop->id . ' AND token = \'' . pSQL(Tools :: getValue('token')) . '\'')) || ($id_customer_thread = CustomerThread :: getIdCustomerThreadByEmailAndIdOrder($from, $id_order)))) {
					$fields = Db :: getInstance()->executeS('
										SELECT cm.id_customer_thread, cm.id_contact, cm.id_customer, cm.id_order, cm.id_product, cm.email
										FROM ' . _DB_PREFIX_ . 'customer_thread cm
										WHERE email = \'' . pSQL($from) . '\' AND cm.id_shop = ' . (int) $this->context->shop->id . ' AND (' .
					 ($customer->id ? 'id_customer = ' . (int) ($customer->id) . ' OR ' : '') . '
											id_order = ' . (int) $id_order . ')');
					$score = 0;
					foreach ($fields as $key => $row) {
						$tmp = 0;
						if ((int) $row['id_customer'] && $row['id_customer'] != $customer->id && $row['email'] != $from)
							continue;
						if ($row['id_order'] != 0 && $id_order != $row['id_order'])
							continue;
						if ($row['email'] == $from)
							$tmp += 4;
						if ($row['id_contact'] == $id_contact)
							$tmp++;
						if (Tools :: getValue('id_product') != 0 && $row['id_product'] == Tools :: getValue('id_product'))
							$tmp += 2;
						if ($tmp >= 5 && $tmp >= $score) {
							$score = $tmp;
							$id_customer_thread = $row['id_customer_thread'];
						}
					}
				}
				$old_message = Db :: getInstance()->getValue('
									SELECT cm.message FROM ' . _DB_PREFIX_ . 'customer_message cm
									LEFT JOIN ' . _DB_PREFIX_ . 'customer_thread cc on (cm.id_customer_thread = cc.id_customer_thread)
									WHERE cc.id_customer_thread = ' . (int) ($id_customer_thread) . ' AND cc.id_shop = ' . (int) $this->context->shop->id . '
									ORDER BY cm.date_add DESC');
				if ($old_message == $message) {
					$this->context->smarty->assign('alreadySent', 1);
					$contact->email = '';
					$contact->customer_service = 0;
				}

				if ($contact->customer_service) {
					if ((int) $id_customer_thread) {
						$ct = new CustomerThread($id_customer_thread);
						$ct->status = 'open';
						$ct->id_lang = (int) $this->context->language->id;
						$ct->id_contact = (int) ($id_contact);
						$ct->id_order = (int) $id_order;
						if ($id_product = (int) Tools :: getValue('id_product'))
							$ct->id_product = $id_product;
						$ct->update();
					} else {
						$ct = new CustomerThread();
						if (isset ($customer->id))
							$ct->id_customer = (int) ($customer->id);
						$ct->id_shop = (int) $this->context->shop->id;
						$ct->id_order = (int) $id_order;
						if ($id_product = (int) Tools :: getValue('id_product'))
							$ct->id_product = $id_product;
						$ct->id_contact = (int) ($id_contact);
						$ct->id_lang = (int) $this->context->language->id;
						$ct->email = $from;
						$ct->status = 'open';
						$ct->token = Tools :: passwdGen(12);
						$ct->add();
					}

					if ($ct->id) {
						$cm = new CustomerMessage();
						$cm->id_customer_thread = $ct->id;
						$cm->message = $message;
						/*if (isset ($fileAttachment['rename']) && !empty ($fileAttachment['rename']) && rename($fileAttachment['tmp_name'], _PS_UPLOAD_DIR_ . basename($fileAttachment['rename']))) {
							$cm->file_name = $fileAttachment['rename'];
							@ chmod(_PS_UPLOAD_DIR_ . basename($fileAttachment['rename']), 0664);
						}*/
						$cm->ip_address = ip2long(Tools :: getRemoteAddr());
						$cm->user_agent = $_SERVER['HTTP_USER_AGENT'];
						if (!$cm->add())
							$this->errors[] = Tools :: displayError('An error occurred while sending the message.');
					} else
						$this->errors[] = Tools :: displayError('An error occurred while sending the message.');
				}

				if (!count($this->errors)) {
					$var_list = array (						
						'{message}' => Tools :: nl2br(stripslashes($message)),
						'{email}' => $from,
						'{product_name}' => '',
						
					);

					/*if (isset ($fileAttachment['name']))
						$var_list['{attached_file}'] = $fileAttachment['name'];*/

					$id_product = (int) Tools :: getValue('id_product');

					/*if (isset ($ct) && Validate :: isLoadedObject($ct) && $ct->id_order) {
						$order = new Order((int) $ct->id_order);
						$var_list['{order_name}'] = $order->getUniqReference();
						$var_list['{id_order}'] = (int) $order->id;
					}*/ 

					if ($id_product) {
						$product = new Product((int) $id_product);
						if (Validate :: isLoadedObject($product) && isset ($product->name[Context :: getContext()->language->id]))
							$var_list['{product_name}'] = $product->name[Context :: getContext()->language->id];
					}
					
					if (empty ($contact->email))
						/*Mail :: Send($this->context->language->id, 'contact_form', ((isset ($ct) && Validate :: isLoadedObject($ct)) ? sprintf(Mail :: l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail :: l('Your message has been correctly sent')), $var_list, $from, null, null, null, $fileAttachment);*/
						Mail :: Send($this->context->language->id, 'contact_form', ((isset ($ct) && Validate :: isLoadedObject($ct)) ? sprintf(Mail :: l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail :: l('Your message has been correctly sent')), $var_list, $from, null, null, null, null);
					else {
						/*if (!Mail :: Send($this->context->language->id, 'contact', Mail :: l('Message from contact form') . ' [no_sync]', $var_list, $contact->email, $contact->name, $from, ($customer->id ? $customer->firstname . ' ' . $customer->lastname : ''), $fileAttachment) || !Mail :: Send($this->context->language->id, 'contact_form', ((isset ($ct) && Validate :: isLoadedObject($ct)) ? sprintf(Mail :: l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail :: l('Your message has been correctly sent')), $var_list, $from, null, $contact->email, $contact->name, $fileAttachment))
							$this->errors[] = Tools :: displayError('An error occurred while sending the message.');*/
							
						if (!Mail :: Send($this->context->language->id, 'contact', Mail :: l('Request info about product: ') . $product->name[Context :: getContext()->language->id], $var_list, $contact->email, $contact->name, $from, ($customer->id ? $customer->firstname . ' ' . $customer->lastname : ''), null) || !Mail :: Send($this->context->language->id, 'contact_form', ((isset ($ct) && Validate :: isLoadedObject($ct)) ? sprintf(Mail :: l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail :: l('Your message has been correctly sent')), $var_list, $from, null, $contact->email, $contact->name, null))
							$this->errors[] = Tools :: displayError('An error occurred while sending the message.');
					}
				}

				if (count($this->errors) > 1)
					array_unique($this->errors);
				else
					$this->context->smarty->assign('confirmation', 1);
			}
		}
	}
	/* Fin contact form en producto */

Casi todos los cambios que realicé en éste código, se limitan a quitar información innecesaria: archivos adjuntos, y numero de orden; todas las líneas encerradas en comentario son relacionadas con éstas omisiones. Por ésta razón, me parecieron innecesarias las dos llamadas a addJsDefL en el .tpl

 

 

Agregué, en la línea 71, una asignación en cero para el número de orden, comentando la instrucción original:

/*$id_order = (int) $this->getOrder();*/
$id_order = 0;

En las líneas 155-160, eliminé del array la información de archivo adjunto y numero de orden:

                                   $var_list = array (						
						'{message}' => Tools :: nl2br(stripslashes($message)),
						'{email}' => $from,
						'{product_name}' => '',
						
					);

En las lineas 181 y 186, cambié los comandos Mail, eliminando los adjuntos, y cambiando el nombre de las plantillas de correo a enviar. Aquí también hay un pequeño cambio en el subject del mensaje, agregándo el nombre del producto al mismo. ¿Se acuerdan del campo hidden que puse en el tpl con el id del producto? Para ésto sirvió :)

if (empty ($contact->email))
        /*Mail :: Send($this->context->language->id, 'contact_form', ((isset ($ct) && Validate :: isLoadedObject($ct)) ? sprintf(Mail :: l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail :: l('Your message has been correctly sent')), $var_list, $from, null, null, null, $fileAttachment);*/
        Mail :: Send($this->context->language->id, 'contact_form_product', ((isset ($ct) && Validate :: isLoadedObject($ct)) ? sprintf(Mail :: l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail :: l('Your message has been correctly sent')), $var_list, $from, null, null, null, null);
else {
        /*if (!Mail :: Send($this->context->language->id, 'contact', Mail :: l('Message from contact form') . ' [no_sync]', $var_list, $contact->email, $contact->name, $from, ($customer->id ? $customer->firstname . ' ' . $customer->lastname : ''), $fileAttachment) || !Mail :: Send($this->context->language->id, 'contact_form', ((isset ($ct) && Validate :: isLoadedObject($ct)) ? sprintf(Mail :: l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail :: l('Your message has been correctly sent')), $var_list, $from, null, $contact->email, $contact->name, $fileAttachment))
                $this->errors[] = Tools :: displayError('An error occurred while sending the message.');*/
                
        if (!Mail :: Send($this->context->language->id, 'contact_product', Mail :: l('Request info about product: ') . $product->name[Context :: getContext()->language->id], $var_list, $contact->email, $contact->name, $from, ($customer->id ? $customer->firstname . ' ' . $customer->lastname : ''), null) || !Mail :: Send($this->context->language->id, 'contact_form', ((isset ($ct) && Validate :: isLoadedObject($ct)) ? sprintf(Mail :: l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail :: l('Your message has been correctly sent')), $var_list, $from, null, $contact->email, $contact->name, null))
                $this->errors[] = Tools :: displayError('An error occurred while sending the message.');
}

Se puede observar que los nombres de los archivos de plantilla son:

contact_form_product

y

contact_product  lo que nos lleva al siguiente paso

 

plantillas de correo

 

Simplemente, dentro de la carpeta mails/idioma de la tienda ( en mi caso, mx) copié los archivos

contact.html, contact.txt, contact_form.html y contact_form.txt

 

a sus nuevos nombres, como lo especifiqué más arriba:

contact_product.html, contact_product.txt, contact_form_product.html y contact_form_product.txt.

 

Aquí un detalle de los archivos desde filezilla

post-790958-0-91811800-1418863298_thumb.png

 

Después de eso (o antes), con un editor abrí cada uno de los archivos *_product.*  y eliminé la información de id del pedido y archivo adjunto. En el caso de los .html, ésta se encuentra dentro de secciones <span>. En el caso de los txt, son líneas simples, fáciles de identificar. No muestro detalles de éstos cambios, ya que son simples de hacer.

 

traducciones

 

Como comenté más arriba, dejé los mensajes a cliente en el .tpl en su formato original en inglés, con el fin de traducirlos desde el menú de traducciones, pues bien,

en el back, me voy al menú Localización, Traducciones.

Allí selecciono Traducciones del Fron Office, Mi tema e idioma defecto y le doy click a Modificar.

Después, busco la sección Product y aquí la tenemos, mostrando en rojo los nuevos campos añadidos :)

post-790958-0-43844500-1418864611_thumb.png

 

Ahora, lo único que falta, es jugar con las hojas de estilo para personalizar la apariencia. Pero eso, es otro boleto :P

 

Pues eso es todo. Espero que a los que lean éste post les sea tan útil como a mí.

Por último, me obligo a poner mi

 

DISCLAIMER

 

La información, códigos y procesos aquí vertida es, opinión meramente personal. Se proporciona *tal cual* y no otorga ningún derecho ni obligación.

 

 

Saludos!!

 

 

  • Like 3
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...