Disponible
← Retour au journal
Snippets

Purger le cache LiteSpeed depuis un hook PrestaShop

Quand on développe un module qui modifie un produit hors du flux standard, il faut prévenir LSCache de purger les pages concernées. Snippet à intégrer dans n'importe quel module.

12.02.2026 ·Jérôme Admin

Quand on touche à un produit hors du flux standard PS (par exemple via un import ou une commande CLI), ps_lscache n'est pas notifié et la page reste cachée avec l'ancienne valeur. Voici comment forcer la purge ciblée.

Le code

// Dans votre module, après modification d'un produit :
if (\Module::isEnabled('ps_lscache')) {
    /** @var \Ps_Lscache $lscacheModule */
    $lscacheModule = \Module::getInstanceByName('ps_lscache');
    if ($lscacheModule && method_exists($lscacheModule, 'purgeByTags')) {
        $lscacheModule->purgeByTags([
            'P_' . (int) $idProduct,    // page produit
            'C_' . (int) $idCategory,    // page catégorie parente
            'home',                      // homepage si produit en featured
        ]);
    }
}

Les tags PrestaShop standard

  • P_X : page produit ID X
  • C_X : page catégorie ID X
  • M_X : page fabricant
  • S_X : page fournisseur
  • CMS_X : page CMS
  • home : la homepage
  • pagination : toutes les listes paginées

Purge globale (à éviter sauf urgence)

$lscacheModule->purgeAll();

Évitez la purge globale en production : elle invalide toutes les pages d'un coup et provoque un pic de charge le temps que le cache se reconstruise. Préférez toujours les tags ciblés.

Tester depuis la CLI

curl -X PURGE -H "X-LiteSpeed-Purge: tag=P_42" https://votreboutique.be/

Header HTTP envoyable directement à OLS pour invalider une URL. Utile pour debug ou intégration externe (CI, ERP, …).

#prestashop #prestashop-8 #snippet #lscache