Buenos días,

Prestashop está mejorando mucho en optimización SEO, pero todavía está un poco verde en algunos aspectos y, a pesar de no ser un experto en SEO, se me ha dado la necesidad de redirigir productos que están descatalogados a su categoría y no a un producto en específico, dado que pueden darse casos en los que un artículo puede no ser lo suficientemente parecido a otro para “suplantarlo” y, creo más conveniente que sea el propio cliente el que elija otro artículo dentro de la misma categoría que el artículo descatalogado.

Pues bien, aquí tenéis un pequeño aporte que puede servirle a algunos.

En el archivo /controllers/front/ProductController.php, sobre la línea 108 hay que comentar o eliminar esta línea para los casos en los que no tenga un artículo asociado no establezca la redirección 404 y quede la redirección 301

y cambiadla por este código para que cuando no tenga redirección 301 ni 302 sea 404

Con esto hecho, vamos a la línea 112, donde tenemos este código en la función “public function init()”:

Cambiamos el caso 301 para que quede de la siguiente forma:

Comprobamos si tenemos producto relacionado (“id_product_redirected”). Si no tenemos producto relacionado, lo redirigimos a la categoría del producto obteniendo el link con “getCategoryLink” y especificando el Id de la categoría del producto con “id_category_default”.

Es muy sencillo pero como buen novato tardé bastante en realizarlo. Se puede hacer lo mismo en el 302 si se necesita. Aún así me falta perfeccionarlo para que incluya un mensaje que informe al cliente de que el producto está descatalogado y que se le muestra una serie de artículos de su misma categoría. Cuando lo tenga os lo pondré también, aunque si hay alguien que dé con la solución antes que yo y lo pone, agradecido.

Espero os sirva. Un saludo,

Iván Ros

 

EDITO: Como bien me han corregido en el foro de Prestashop, para este tipo de cambios lo mejor es hacer un override, con lo que copiad la función init() y extended la clase ProductControllerCore. Os pongo el código completo de cómo quedaríai el archivo /override/controllers/front/ProductController.php

 

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *