Bonjour @quentinpanier24 et @damienhub,
@damienhub pointe dans la bonne direction. Le problème vient du fait que le hook hookDisplayShoppingCart doit recevoir des $params et que les variables nécessaires au template Smarty ne sont pas correctement assignées avant l'appel à renderForHookPosition. Le template sous-jacent ne peut pas se rendre correctement sans les données (montant restant, devise, etc.).
Voici comment vous devriez modifier votre code dans smartfreeshippingpro/smartfreeshippingpro.php pour que la barre s'affiche :
pulic function hookDisplayShoppingCart(array $params)
{
$cart = $params['cart'];
$currency = $this->context->currency;
$remaining = $this->getAmountNeededForFreeShipping($cart); // Méthode du module
$this->context->smarty->assign([
'sfs_amount_remaining_formatted' => Tools::displayPrice($remaining, $currency),
'sfs_is_free_shipping_achieved' => ($remaining <= 0),
]);
return $this->renderForHookPosition('displayShoppingCart');
J'ai ajouté l'argument $params au hook et surtout l'assignation des variables Smarty (sfs_amount_remaining_formatted et sfs_is_free_shipping_achieved) en utilisant une fonction interne au module (getAmountNeededForFreeShipping) pour simplifier. C'est ce bloc assign qui permet au template de recevoir les données et de générer du contenu.
Pour des fonctionnalités aussi critiques que la livraison gratuite, et pour éviter ce genre de modifications manuelles qui peuvent être écrasées lors des mises à jour, il est souvent préférable d'utiliser un module dédié et maintenu. Le module Barre de progression livraison gratuite Pro gère ce genre de logique de manière robuste et est compatible avec les dernières versions de PrestaShop.