Hola @danielaonline48 y @nuriadeco,
@nuriadeco tiene razón, la versión es importante. Si estás en PrestaShop 1.7.4.3 como apuntas en tu setup, ese override en IndexController es funcional pero, como bien señalas, es una práctica muy arriesgada para la estabilidad y el mantenimiento de tu tienda. No solo es poco práctico por los IDs fijos, sino que cualquier actualización menor del core de PrestaShop o de tu tema podría sobrescribir tu override o causar conflictos, dejando la web con errores.
Para implementar productos destacados de manera limpia y que resista las actualizaciones, lo ideal es crear un módulo que se enganche a un hook específico, como displayHome o displayHomeTab.
Un ejemplo de cómo se vería el método hookDisplayHome dentro de tu módulo (asumiendo que tienes una configuración para seleccionar los productos o una categoría específica):
public function hookDisplayHome($params)
{
// Obtener IDs de productos destacados, por ejemplo, desde una configuración
// o de una categoría específica (ej. ID 3, 'Productos Destacados')
$id_lang = (int)$this->context->language->id;
$id_category_featured = (int)Configuration::get('MYMODULE_FEATURED_CAT_ID', null, null, null, 3);
$products = Product::getProducts(
$id_lang, 0, 8, 'position', 'ASC', $id_category_featured, true
);
$this->context->smarty->assign([
'featured_products' => $products,
'homeSize' => Image::getSize(ImageType::getFormattedName('home'))
]);
return $this->display(__FILE__, 'views/templates/hook/myfeaturedproducts.tpl');
}
Este código iría dentro de un nuevo módulo, en el archivo principal .php, y se encargaría de pasar los productos al archivo .tpl de tu hook. Así es mucho más modular y seguro.
Para una solución más completa y sin tener que desarrollar código personalizado, que es lo más recomendable para mantener la tienda en producción, te sugiero utilizar un módulo preparado para productos destacados. Estos módulos suelen ofrecer una interfaz de administración para seleccionar fácilmente los productos, categorías o reglas, y gestionan todo el proceso de visualización sin riesgo de conflictos.