Hola @lorena_bcn,
El problema que describes es bastante común cuando se trabaja con hooks en PrestaShop 8, especialmente con módulos personalizados o antiguos que no están totalmente adaptados a cómo se pasan los objetos Product en el nuevo contexto. Aunque hookDisplayProductAdditionalInfo recibe $params correctamente del core, renderProductWidget puede estar fallando al asumir que el objeto product ya está completamente cargado y es una instancia de Product.
Para asegurar que el widget siempre tenga un objeto Product válido y completamente cargado, te sugiero una pequeña modificación en tu gpsrenterprise/gpsrenterprise.php para verificar y cargar el producto si es necesario, antes de pasarlo al método renderProductWidget:
function hookDisplayProductAdditionalInfo($params)
{
// Asegurarse de que el objeto 'product' esté disponible y sea una instancia de Product
if (!isset($params['product']) || !($params['product'] instanceof Product)) {
if (isset($params['id_product'])) {
$params['product'] = new Product((int)$params['id_product'], false, $this->context->language->id);
} else {
return ''; // No podemos renderizar sin el producto.
}
}
Este cambio verifica si product está en $params y si es un objeto Product. Si no, intenta cargarlo usando id_product. Si no hay id_product tampoco, el widget no se renderizará para evitar errores. Además, para una gestión más robusta y sin tener que tocar el código del módulo directamente, que siempre es arriesgado con actualizaciones, te recomiendo echar un vistazo a una solución para cumplimiento gpsr dedicada, que ya incluye estas consideraciones y más funcionalidades.