Bonjour,
En effet, tout cela est faisable avec un plugin.
Vous pouvez vous baser sur le plugin "hide unavailable":
www.hikashop.com/marketplace/product/222...-product-plugin.html
Ce plugin cache les produits en fonction de leur date de début/fin de vente en ajoutant des conditions à la requête MySQL de chargement des produits.
Pour se faire, le plugin utilise l'évènement onBeforeProductListingLoad.
Il n'utilise que le premier paramètre $filters pour rajouter des conditions à la requête.
Mais il y a en fait plus de paramètres disponible: onBeforeProductListingLoad( & $filters, & $order, & $view, & $select, & $select2, & $a, & $b, & $on)
$order permet justement de modifier le classement des produits.