¡Hola @mariobici!
@carlacart71 tiene razón, es crucial saber la versión exacta. Por lo que veo en el código, estás en PrestaShop 1.7.7.0. El problema principal en tu displayZoomImage es que estás usando _PS_IMG_ para construir la URL completa de la imagen. Esa constante apunta a la ruta física del directorio de imágenes en tu servidor, no a la URL web que necesita el navegador.
Para obtener la URL web de la imagen, deberías usar _PS_IMG_URI_ en su lugar. Además, te sugiero añadir una clase CSS a la imagen para que tu JavaScript pueda engancharse fácilmente a ella sin depender de estilos inline. Aquí tienes el snippet corregido para tu AdminProductsController.php:
class AdminProductsController extends AdminProductsControllerCore
{
public function __construct()
{
parent::__construct();
$this->fields_list['image']['callback'] = 'displayZoomImage';
}
public function displayZoomImage($image, $tr)
{
$id_product = (int)$tr['id_product'];
Con este cambio, la URL data-full-image debería ser correcta. Luego necesitarías un pequeño script JavaScript (cargado en el Back Office, por ejemplo con un hook displayBackOfficeHeader si lo haces en un módulo o directamente en el tema si te atreves a tocarlo) que, al pasar el ratón por encima de img.product-image-zoomable, muestre la imagen completa de data-full-image.
Ten en cuenta que hacer overrides de controladores puede ser complicado de mantener a largo plazo, sobre todo si hay actualizaciones de PrestaShop o de tu tema. Para una solución más robusta y fácil de mantener en una tienda en producción, especialmente en versiones como PrestaShop 1.7 donde el Back Office ya empieza a tener partes en Symfony, te recomiendo buscar una solución para ampliar imágenes ya existente en forma de módulo. Esto te evitará dolores de cabeza con la compatibilidad.