Hola @lorenaauto64,
@natalia_lab tiene razón. Tu intento de override del ProductController es funcionalmente correcto para asignar las variables a Smarty, pero el problema radica en que el ProductController controla la lógica, no la presentación directa del head HTML. Para que esos metadatos se muestren, necesitarías editar el archivo head.tpl de tu tema (o product.tpl si quieres las meta tags en el cuerpo del producto, lo cual no es lo habitual para Open Graph).
Modificar directamente los .tpl del tema o hacer overrides a controladores core para inyectar scripts y metadatos específicos de terceros como Facebook es muy frágil. Cada actualización del tema o de PrestaShop podría romperlo, y mantenerlo en diferentes versiones de PHP o PS es una pesadilla.
La solución más limpia y mantenible es usar un módulo que se enganche a displayHeader o displayFooter para inyectar las etiquetas meta o el código JavaScript necesario de Facebook. Así, el módulo gestiona la lógica de qué página es, obtiene los datos del producto y los imprime sin tocar el core ni el tema directamente.
Aquí tienes un ejemplo de cómo podrías implementar la inyección de metadatos Open Graph en el header usando un módulo en PrestaShop 1.7.1.2:
// En el archivo principal de tu_modulo.php
public function hookDisplayHeader()
{
if ($this->context->controller instanceof ProductController && ($product = $this->context->controller->getProduct())) {
if (Validate::isLoadedObject($product)) {
$this->context->smarty->assign(array(
'facebook_og_url' => $this->context->link->getProductLink($product),
'facebook_og_title' => $product->name[$this->context->language->id],
'facebook_og_image' => $this->context->link->getImageLink($product->link_rewrite[$this->context->language->id], $product->id_default_image, 'home_default'),
));
Y luego en views/templates/hook/facebook_metas.tpl dentro de tu módulo:
{if isset($facebook_og_url)}
<meta property="og:url" content="{$facebook_og_url}" />
<meta property="og:title" content="{$facebook_og_title}" />
<meta property="og:image" content="{$facebook_og_image}" />
<meta property="og:type" content="product" />
{/if}
Este método te permite tener control total sobre los metadatos sin modificar archivos críticos. Para una integración completa y robusta de la tienda de Facebook, que incluya sincronización de productos, catálogos, y más allá de solo metadatos, te recomiendo usar un módulo dedicado. Es la forma más segura de evitar problemas de compatibilidad y garantizar la funcionalidad a largo plazo. Puedes echar un vistazo a Pestaña de Ventas de Facebook, que está diseñado específicamente para esto.