Tu peux utiliser 1 boucle test sur le prix, du style:
<TEST_prix var="#PRIX" test="egal" val="0">
<div class="introProduit">
<div class="chapo">#CHAPO</div>
<!-- Stock disponible : #STOCK-->
#FILTRE_supegal(#STOCK||1||<p><a class="acheter" href="#PANIER"><span><span>::ajouterpanier::</span></span></a></p>||<p>Produit indisponible</p>)
</div>
</TEST_prix>
<div class="introProduit">
<div class="chapo">#CHAPO</div>
#PROMO[<span class="prixProduit">#PRIX2 €</span> ::changprix:: #PRIX €][<span class="prixProduit">#PRIX €</span>]
<!-- Stock disponible : #STOCK-->
#FILTRE_supegal(#STOCK||1||<p><a class="acheter" href="#PANIER"><span><span>::ajouterpanier::</span></span></a></p>||<p>Produit indisponible</p>)
</div>
<//TEST_prix>
si #PRIX a la val="0" tu n'affiche pas le prix
si different de 0 tu affiche le code Thelia normalement
Sinon avec 1 filtre Thelia (plugin filtrecomparaison a telecharger)
#FILTRE_egalsinon(#PRIX||0||code pour ne pas afficher||code Thelia classique)
Voila je pense le principe