Jump to content

Mostrar enlace de seguimiento GLS en detalles del pedido


Recommended Posts

Hola,

he visto algunos hilos tratando de solucionar este problema ya que la url de seguimiento de GLS incluye al final el código postal de destino. Esto hace que no funcione correctamente la url de seguimiento que se indica al configurar el transportista.

Cuando el cliente accede a los detalles de su pedido, no se muestra un enlace directo al seguimiento de su envío.

He conseguido solucionarlo modificando estos dos ficheros:

OderDetailController.php

order-detail.tpl

En OderDetailController.php, sobre la línea 165, localizar este código:

if (!$id_order) {
            $this->redirect_after = '404';
            $this->redirect();
        } else {
            if (Tools::getIsset('errorQuantity')) {

Y lo cambiáis por este, que añade la consulta sql en la tabla de GLS:

if (!$id_order) {
            $this->redirect_after = '404';
            $this->redirect();
        } else {
			// Empieza consulta SQL
        $sql = new DbQuery();
        $sql->select('url_track');
        $sql->from('gls_envios');
        $sql->where('id_envio_order = '. (int) $id_order);
        $result = Db::getInstance()->getValue($sql);

        $this->context->smarty->assign('url_track', $result);
        // Acaba consulta SQL
            if (Tools::getIsset('errorQuantity')) {

En order-detail.tpl, sobre la línea 98, localizar este código:

<div id="order-infos2" class="box">
    <ul>
      <li><strong>{l s='Carrier' d='Shop.Theme.Checkout'}</strong> {$order.carrier.name}		
		</li>

Y cambiarlo por este:

{* //////////////////////////////////////////////////// Acceder a la variable url_track en Smarty y mostrarla como un enlace *}	 
	 {if isset($url_track) && $url_track}
    <div class="block">
        <h3>{l s='Puedes acceder a la información de seguimiento en el siguiente enlace:' d='Shop.Theme.Customeraccount'}</h3>
        <a href="{$url_track}" target="_blank" class="btn btn-primary">
            {l s='Haz clic aquí para consultar el seguimiento de tu envío con GLS' d='Shop.Theme.Customeraccount'}
        </a>
    </div>
{/if}
	 
	 {if $order.follow_up && !isset($url_track)}
    <div class="box">
      <p>{l s='Click the following link to track the delivery of your order' d='Shop.Theme.Customeraccount'}</p>
      <a href="{$order.follow_up}">{$order.follow_up}</a>
    </div>
{/if}
{* //////////////////////////////////////////////////// FIN DE: Acceder a la variable url_track en Smarty y mostrarla como un enlace *}

Esto inserta un botón que va directo a la página de seguimiento del envío en GLS. Además, también oculta el follow_up normal cuando existe la url de gls. Si no existe la url de gls (por ejemplo para otros transportistas), no se muestra el botón de GLS, y sí se muestra el Follow_up normal de prestashop, con la url del transportista.

Como mi código ya incluye el follow_up normal de prestashop, debes buscar este código un poco más abajo y eliminarlo para que no salga dos veces cuando no hay url de GLS:

{if $order.follow_up && !isset($url_track)}
    <div class="box">
      <p>{l s='Click the following link to track the delivery of your order' d='Shop.Theme.Customeraccount'}</p>
      <a href="{$order.follow_up}">{$order.follow_up}</a>
    </div>
{/if}

A mi me va a la perfección, salut!

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...