__fito__ Posted May 12, 2023 Share Posted May 12, 2023 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now