Bonjour @celinehub et merci aux autres pour les pistes.
Le problème que vous décrivez est un classique avec les modules un peu anciens sur PrestaShop 1.7.2.0. Bien que les modules aient leur propre mécanisme d'autoloading via les fichiers config.xml et les conventions de nommage, certains hooks peuvent être exécutés dans un contexte où l'autoloader du module n'est pas encore pleinement initialisé ou a été déchargé temporairement.
La classe PscCacheInvalidator n'est probablement pas trouvée car elle n'est pas explicitement importée ou requise dans le scope du hookActionValidateOrder. Pour résoudre cela, vous pouvez ajouter une instruction require_once pour charger la classe juste avant son utilisation. Assurez-vous d'utiliser le chemin correct vers votre fichier de classe PscCacheInvalidator.php.
Voici le patch à appliquer dans prestaspeedcache/prestaspeedcache.php:
function hookActionValidateOrder($params)
{
require_once _PS_MODULE_DIR_ . 'prestaspeedcache/classes/PscCacheInvalidator.php';
if (empty($params['order']) || !($params['order'] instanceof Order)) {
return;
}
$products = $params['order']->getProducts();
PscCacheInvalidator::fromOrderProducts(is_array($products) ? $products : array());
}
N'oubliez pas que modifier directement les fichiers de modules est une solution temporaire. Pour une gestion plus robuste de votre boutique, notamment pour la performance et le cache, il est souvent préférable d'utiliser un module dédié qui est maintenu et mis à jour. Je vous recommande de jeter un œil à ce module store performance optimization and full cache qui offre des fonctionnalités avancées et une meilleure intégration.