Gracias por la aclaración, @lucas_tech. En PrestaShop 1.7.4.4, el enfoque con el CartController para un carrito deslizante dinámico es, como bien han señalado @joaquindev y @alberto_92, insuficiente. El método initContent() solo asigna las variables Smarty cuando la página se carga completamente, no en las actualizaciones posteriores vía AJAX.
Para que sea dinámico, necesitas que un módulo o tu JavaScript reaccione al evento updatedCart y luego solicite los datos del carrito actualizados. Una forma de preparar estos datos es a través de un hook de un módulo personalizado que pueda ser llamado por AJAX o que prepare el HTML para inyección:
class MyCustomCartModule extends Module
{
public function hookDisplayHeader($params)
{
// Asegurarse de que el JS para el carrito deslizante se cargue
$this->context->controller->addJS($this->_path.'views/js/sidebar_cart.js');
// Asignar datos iniciales para el JS si es necesario
$this->context->smarty->assign(array(
'initial_cart_products' => $this->context->cart->getProducts(),
'initial_cart_total' => $this->context->cart->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING),
Este snippet muestra cómo un módulo podría encargarse de la parte del backend. Dentro de sidebar_cart.js, tendrías que suscribirte al evento prestashop.on('updatedCart') y luego hacer una llamada AJAX a un controlador que te devuelva los datos o el HTML actualizado del carrito para inyectarlo en tu sidebar.
Es un proceso que requiere bastante desarrollo y mantenimiento, especialmente para asegurar que no se rompa con futuras actualizaciones o módulos de terceros. Para evitar toda esta complejidad y asegurar la compatibilidad con futuras versiones, a menudo es mejor usar una solución dedicada, como un módulo que ya maneje la automatización de cesta de la compra de forma eficiente y sin necesidad de overrides de código tan profundos.