Hola @joaquindev,
@elenadeco99 tiene razón, el ProductController no es el lugar más eficiente para filtrar las características porque el proceso de presentación de productos en PrestaShop 8 (y versiones recientes) se maneja a través de los Presenters. El ProductPresenter es el encargado de formatear los datos del producto, incluyendo sus características, antes de que lleguen a la plantilla Smarty.
La forma más limpia de interceptar y modificar las características antes de que se muestren es creando un override para el ProductPresenter. Aquí te muestro un ejemplo de cómo podrías hacerlo. Crea un archivo classes/ProductPresenter.php en tu directorio override (si no existe, crea la carpeta classes dentro de override):
class ProductPresenter extends ProductPresenterCore
{
public function present(array $rawProduct)
{
$presentedProduct = parent::present($rawProduct);
$featuresToHide = [5, 8, 12]; // IDs de características a ocultar
if (isset($presentedProduct['features']) && is_array($presentedProduct['features'])) {
$filteredFeatures = [];
foreach ($presentedProduct['features'] as $feature) {
if (!in_array($feature['id_feature'], $featuresToHide)) {
Después de crear este archivo, asegúrate de borrar el archivo class_index.php en var/cache/prod (o dev) para que PrestaShop recompilé las clases y reconozca el override. Este método es más robusto porque modificas la fuente de los datos que se presentan en toda la tienda.
Sin embargo, para una solución más completa que te permita gestionar esto desde el back office sin tocar código, y que sea 100% compatible con futuras actualizaciones y diferentes temas, siempre recomiendo una herramienta de ocultar características seleccionadas dedicada. Estos módulos están diseñados para estas funcionalidades específicas y son mucho más fáciles de mantener.