Date custom field - filtrer et trier

  • Posts: 15
  • Thank you received: 2
  • Hikaserial Subscription Hikashop Business
1 year 9 months ago #342614

-- HikaShop version -- : 4.2.2
-- Joomla version -- : 3.9.28
-- PHP version -- : 7.3.26

Bonjour,

Nous avons un custom field de type date pour chaque produit. Ces produits sont des cours ou des webinaires avec une date de début. Cette date est indépendante des dates de début et de fin de publication qu'on utilise aussi pour l'usage prévu.

1/ comment exclure automatiquement les "anciens" d'un listing donné (catalogue) sans pour autant dépublier ou rendre le produit non achetable ? En effet, on ne veut plus voir au catalogue les produits dont la date de début est inférieur à la date du jour. Mais on veut pouvoir donner un lien à certains clients pour qu'ils puissent les acheter quand même. On ne peut donc pas jouer sur les dates de publication ou sur les stocks.
En SQL c'est un filtre simple : where date_debut > now(). Dans les filtres "utilisateurs", cela ne semble pas possible.
Je pense que la seule voie c'est un plugin spécifique qui "intercepte" la liste des produits et enlève tous ceux qui sont "hors critères". Une piste sur le trigger à utiliser et sur la bonne façon de ne l'appliquer que sur un élément de menu donné (celui qui affiche le catalogue) ?

2/ on trie le catalogue sur la date de début. Cela fonctionne très bien. Mais certains produits n'ont pas de dates de début, elle est donc à zéro et ces produits apparaissent en premier dans la liste. Là aussi, aurait-on un moyen de renvoyer en fin de listing les produits n'ayant pas de date de début ? Probablement par un plugin là aussi....

Merci.

Laurent

Please Log in or Create an account to join the conversation.

  • Posts: 81478
  • Thank you received: 13060
  • MODERATOR
1 year 9 months ago #342620

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.

The following user(s) said Thank You: gvitry

Please Log in or Create an account to join the conversation.

  • Posts: 15
  • Thank you received: 2
  • Hikaserial Subscription Hikashop Business
1 year 9 months ago #342626

Je creuse cette piste.
Merci

Please Log in or Create an account to join the conversation.

Time to create page: 0.057 seconds
Powered by Kunena Forum