Cómo eliminar el ID de los productos en las url amigables

Si buscas la solución a eliminar id url prestashop, aquí la tienes explicada paso a paso por el equipo de soporte de AZprestashop.

Eliminar id url PrestaShop

Si desea eliminar el identificador de los productos que aparecen en las urls amigables, en este post le damos las pautas a seguir para solucionarlo.

Cómo hacerlo en PrestaShop: paso a paso

Es necesario modificar código manualmente. Válido para las versiones 1.3.2 y 1.4.2 de Prestashop.

Se debe modificar el archivo prodcut.php o ProductController.php. En la versión 1.3.2 cópielo después de los includes y en la versión 1.4.2 justo debajo del tag <?php.

if(Tools::getValue('product')){    $_GET['id_product']=Db::getInstance()->getValue('SELECT id_product FROM '._DB_PREFIX_.'product_lang WHERE link_rewrite="'.pSQL(Tools::getValue('product')).'"');}

A continuación, nos vamos al archivo classes/Link.php y sustituimos el método getProductLink por lo siguiente:

public function getProductLink($id_product, $alias = NULL, $category = NULL, $ean13 = NULL){
global $cookie;
$lang_link = "";
if (!isset($this->allow)) $this->allow = 0;
if ($this->allow && $cookie->id_lang != Configuration::get('PS_LANG_DEFAULT')) $lang_link = "lang-".Language::getIsoById($cookie->id_lang)."/";
if (is_object($id_product))  return ($this->allow == 1)?(_PS_BASE_URL_.__PS_BASE_URI__.$lang_link.(($id_product->category != 'home' AND !empty($id_product->category)) ? $id_product->category.'/' : '').$id_product->link_rewrite.($id_product->ean13 ? '-'.$id_product->ean13 : '').'.html') : (_PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.intval($id_product->id));
elseif ($alias) return ($this->allow == 1)?(_PS_BASE_URL_.__PS_BASE_URI__.$lang_link.            (($category AND $category != 'home') ? ($category.'/') : '').$alias.($ean13 ? '-'.$ean13 : '').'.html') :  (_PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.intval($id_product));
else return _PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.intval($id_product);   }

El método anterior sirve para que se generen los enlacen sin el ID.

Lo siguiente es modificar el -htacces para dirigir esos enlaces. Es necesario borrar lo que haga referencia a product.php y añadir lo siguiente:

RewriteRule ^lang-([a-z]{2})/([a-zA-Z0-9-]*)/([a-zA-Z0-9-]*).html(.*)$ /product.php?product=$3&isolang=$1$4 [L,E]RewriteRule ^lang-([a-z]{2})/([a-zA-Z0-9-]*).html(.*)$ /product.php?product=$2&isolang=$1$3 [L,E]RewriteRule ^([a-zA-Z0-9-]*)/([a-zA-Z0-9-]*).html(.*)$ /product.php?product=$2$3 [L,E]RewriteRule ^([0-9]+)-([a-zA-Z0-9-]*).html(.*)$ /product.php?product=$1$2 [L,E]

Si tiene prestashop en una carpeta (es decir, no lo tiene en la raiz del servidor) debe añadir «/nombreDeLaCarpeta» delante de «/».

Es posible que existan otras soluciones para eliminar el identificador de las urls amigables, dependiendo de la instalación o configuraciones de su ecommerce. Si desea un mayor asesoramiento del problema sobre como elimnar IDs de productos de las urls no dude en contactar con nosotros para un mejor diagnóstico.

Eliminar id url PrestaShop en PrestaShop 1.7, 8 y 9

En PrestaShop 1.7, 8 y 9 el tema se estructura de otra forma: las plantillas están en themes/tu-tema/templates/, el CSS en assets/css/ y los cambios deberían hacerse en un tema hijo para no perderlos al actualizar. Sin embargo, la idea de fondo es la misma: localizar la plantilla o el fichero CSS responsable y sobrescribirlo. Además, recuerda vaciar la caché después de cada cambio, porque de lo contrario no verás el resultado.

¿Necesitas ayuda con eliminar id url PrestaShop?

Si has seguido estos pasos y el problema continúa, no te preocupes: es más habitual de lo que parece. En primer lugar, revisa el resto de consejos sobre diseño y maquetación de nuestro blog. Además, puedes consultar la documentación oficial de PrestaShop. Sin embargo, si prefieres que lo resolvamos nosotros, nuestro mantenimiento y soporte PrestaShop se encarga con precio cerrado y copia de seguridad previa. Por lo tanto, solo tienes que contarnos qué te pasa y te contestamos en menos de 24 horas laborables.

¿No te ha funcionado o no quieres tocar código?

Nuestro equipo de soporte PrestaShop lo hace por ti: te decimos el precio antes de empezar y dejamos copia de seguridad de todo.

Cuéntanos qué necesita tu tienda

O llámanos: 924 89 15 94 · 927 26 10 71 · 954 32 35 66
Comercial L-V 9:00-15:00 · Soporte L-V 8:00-24:00 · Urgencias 24 h, 365 días

SIGUE LEYENDO

Consejos relacionados

¿Hablamos de tu tienda PrestaShop?

Cuéntanos qué te quita el sueño: una tienda que no vende, un módulo que falla o un proyecto nuevo. Además, te respondemos en menos de 24 horas laborables con una propuesta clara.