Hola @natalia8994,
El problema que describes con la adición de campos personalizados al ProductPresenter es muy común en PrestaShop 9.1.4 (y versiones recientes). Como bien apunta @raul_bcn, el objeto ProductPresenter está diseñado para encapsular los datos de forma estructurada para la vista, y añadir propiedades directamente con \$params['presentedProduct']->{'custom_field_for_grid'} = '...' no es el método correcto para que sean accesibles en Smarty.
La forma más limpia para añadir información extra que sí se puede renderizar en tus plantillas es a través de la propiedad extraContent del ProductPresenter. Esta propiedad está específicamente diseñada para inyectar contenido adicional o metadatos que luego puedes iterar y mostrar en tu .tpl. Para una solución de código que te permita añadir este tipo de información, podrías modificar tu hook de la siguiente manera:
// En el archivo principal de tu módulo (mymodule.php)
public function hookActionProductPresenter($params)
{
if (isset($params['presentedProduct']) && $params['presentedProduct'] instanceof \\PrestaShop\\PrestaShop\\Core\\Product\\ProductPresenter) {
// Añadiendo el campo personalizado a la propiedad extraContent
$params['presentedProduct']->extraContent['custom_grid_data'] = [
'type' => 'html',
'content' => '<strong>' . 'Mi valor de columna' . '</strong>',
'title' => 'Dato Adicional de Cuadrícula'
];
Una vez hecho esto, en tu plantilla Smarty (por ejemplo, themes/hummingbird/templates/catalog/_partials/miniatures/product.tpl o un override de este), podrías acceder a esta información así:
{if isset($product.extraContent.custom_grid_data)}
<div class="custom-grid-column">{$product.extraContent.custom_grid_data.content nofilter}</div>
{/if}
Sin embargo, este enfoque, aunque funciona para añadir contenido, puede ser un poco limitado si lo que buscas es una reestructuración completa de las columnas o un diseño avanzado de la cuadrícula de productos de forma dinámica sin tocar las plantillas. Para una solución más robusta y fácil de mantener, que te permita configurar las columnas y el diseño directamente desde el back office sin overrides frágiles, te recomiendo considerar un módulo especializado. Hay una solución para product grid – columnas que gestiona esto de forma profesional y te evita problemas con futuras actualizaciones.