Tri par prix

  • Posts: 453
  • Thank you received: 31
  • Hikamarket Multivendor Hikashop Business
1 year 11 months ago #347534

Bonjour,

le filtre de tri par prix ne prend pas en compte les réductions mais le prix de base du produit avant réduction, que puis-je faire pour que le vrai prix recalculé soit pris en compte à la place du prix original svp ?

Voici la config du filtre :



Merci d'avance

Attachments:

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 11 months ago #347543

Bonjour,

En effet, les réductions ne sont pas prises en compte.
Je n'ai malheureusement pas de solution.
Les réductions sont calculées dynamiquement en PHP une fois les prix chargés. Or, le filtrage se fait en MySQL durant le chargement des produits à afficher sur le listing, et donc avant le chargement des réductions, des prix et les calculs sur les prix.
Changer l'ordre n'est pas possible. Car il faudrait alors charger les prix et les réductions de tous les produits de toutes les pages du listing pour calculer le prix avec réduction de tous les produits pour pouvoir ensuite faire le filtrage. Or charger autant de données causerait des soucis de performance.
La solution, ça serait de faire une table de cache des prix finaux des produits. Le problème c'est que ce n'est pas simple, car les prix peuvent variés en fonction du groupe de l'utilisateur, de la date, etc. Il y a pleins de critères qui peuvent faire qu'un utilisateur verra un autre prix qu'un autre utilisateur, et donc il faudrait prendre en compte tout cela dans la table de cache des prix finaux, et il faudrait ensuite garder la synchronisation de cette table pour que les prix finaux soient recalculés à chaque fois qu'un prix change, un produit change, une catégorie change, une réduction change, etc. Bref, cela complique beaucoup les choses.
Ce serait un développement très important, avec des soucis sur la synchro et je ne vois pas de solution à vous fournir pour faire cela.

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

  • Posts: 453
  • Thank you received: 31
  • Hikamarket Multivendor Hikashop Business
1 year 11 months ago #347610

Bonjour,

je suis désolée d'apprendre ca :(
Merci quand même pour les idées de pistes, je vais faire quelque chose dans le genre (en plus simple vu que nous n'avons pas à couvrir tous les cas de figures comme vous)

Joyeuses fêtes ! :)

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 11 months ago #347611

Bonjour,

Oui, si c'est quelque chose de plus simple, alors faire une table de cache simplifiée qui gère uniquement les cas dont vous avez besoin sera plus facile à mettre en place. Vous pourrez utiliser l'API product / discount pour mettre à jour la table lorsque quelque chose est modifié, et onBeforeProductListingLoad ( www.hikashop.com/support/documentation/6...reProductListingLoad ) pour changer le tri de la requête de chargement des produits pour prendre en compte cette table de cache au lieu du tri normal si nécessaire.
Il y a quand même pas mal de développement, mais ne pas avoir à gérer tous les cas possibles simplifiera grandement la tâche.

Joyeuses fêtes également !

Last edit: 1 year 11 months ago by nicolas.

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

  • Posts: 453
  • Thank you received: 31
  • Hikamarket Multivendor Hikashop Business
1 year 11 months ago #347615

Bonjour,

merci beaucoup pour toutes ces infos :)

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

Time to create page: 0.070 seconds
Powered by Kunena Forum