¡Hola a todos!
Estoy intentando implementar una funcionalidad de URLs amigables más avanzada de la que ofrece PrestaShop por defecto. Necesito URLs limpias y personalizadas para productos y categorías, algo que me permita añadir parámetros SEO extra o una estructura muy específica que el gestor de SEO de PrestaShop no me permite.
He intentado modificar el método getProductLink de la clase Link para añadir un parámetro extra en la URL, pero al hacerlo, la URL se genera correctamente, pero luego el Dispatcher no sabe cómo rutearla o interpreta mal los parámetros, resultando en un 404 o una página incorrecta. Además, me preocupa que cualquier actualización de PrestaShop me rompa todo. ¿Alguien tiene alguna idea de cómo abordar esto de forma segura sin overrides frágiles? Aquí mi intento:
// override/classes/Link.php
class Link extends LinkCore
{
public function getProductLink($product, $alias = null, $category = null, $id_lang = null, $id_shop = null, $id_product_attribute = 0, $force_routes = false, $relative_protocol = false, $add_anchor = false, $extra_param = null)
{
// Intentando añadir un parámetro extra antes de generar la URL
if ($extra_param) {
$product->extra_url_segment = $extra_param;
}
return parent::getProductLink($product, $alias, $category, $id_lang, $id_shop, $id_product_attribute, $force_routes, $relative_protocol, $add_anchor);
El problema es que extra_url_segment no se procesa o el Dispatcher no lo entiende al resolver la URL, incluso si la URL generada en el frontend parece correcta. Siempre termina en una página no encontrada.