Julien13720 Posted December 6, 2021 Share Posted December 6, 2021 (edited) Bonjour, j'utilise un module de gestion des promotions qui marche bien mais qui ne rempli pas une fonctionnalité importante : la mise à jour des prix en temps réel. Est-il possible d'ajouter une fonction js qui rafraichirait la page une fois le bouton "ajouter au panier" cliqué? Edited January 10, 2022 by Julien13720 (see edit history) Link to comment Share on other sites More sharing options...
Julien13720 Posted December 7, 2021 Author Share Posted December 7, 2021 Ou est-il possible de mettre à jour dynamiquement les prix? le développeur ne veut pas faire la modification de son module Link to comment Share on other sites More sharing options...
Eolia Posted December 7, 2021 Share Posted December 7, 2021 Si le module est bien écrit il doit forcer le vidage du cache chaque fois qu'un produit est modifier, c'est la base. Link to comment Share on other sites More sharing options...
Julien13720 Posted December 7, 2021 Author Share Posted December 7, 2021 J'imagine bien... mais le développeur ne veut rien entendre... il m'a répondu "c'est pas ds nos intentions de développer cette option" 😔 Link to comment Share on other sites More sharing options...
Eolia Posted December 7, 2021 Share Posted December 7, 2021 Recopiez le code du module Bloc Nouveautés ou Promotions ou homefeatured. C'est qui le développeur ? Parce ce que ce n'est pas une option ça, c'est un pré-requis dans un site dynamique en php... Link to comment Share on other sites More sharing options...
Julien13720 Posted December 7, 2021 Author Share Posted December 7, 2021 Idnovate Je recopie le js? Link to comment Share on other sites More sharing options...
Eolia Posted December 7, 2021 Share Posted December 7, 2021 Bizarre, d'habitude ils sont plutôt sérieux... Non, pas le js, c'est dans le php. Il faut se hooker sur toutes les modifs produits. Dans la méthode d'install || !$this->registerHook('addproduct') || !$this->registerHook('updateproduct') || !$this->registerHook('deleteproduct') Ensuite créer les hooks d'action public function hookAddProduct($params) { $this->_clearCache('*'); } public function hookUpdateProduct($params) { $this->_clearCache('*'); } public function hookDeleteProduct($params) { $this->_clearCache('*'); } Et ajouter la fonction de nettoyage du cache si elle n'existe pas avec les bons noms de tpl utilisés par le module public function _clearCache($template, $cache_id = null, $compile_id = null) { parent::_clearCache('xxxxxxxxxxx.tpl'); parent::_clearCache('xxxxxxxxxxx-home.tpl'); parent::_clearCache('xxxxxxxxxxx-tab.tpl'); } Link to comment Share on other sites More sharing options...
Mediacom87 Posted December 7, 2021 Share Posted December 7, 2021 Ce changement n’aura aucun effet sur la prise en compte de l’ajout au panier. Link to comment Share on other sites More sharing options...
idnovate.com Posted December 8, 2021 Share Posted December 8, 2021 12 hours ago, Julien13720 said: Idnovate Je recopie le js? Bonjour Je ne me souviens pas de ce problème. Pouvez-vous nous écrire ici ? https://addons.prestashop.com/contact-form.php?id_product=9129. Peut-être qu'on ne s'est pas compris. Merci. 1 Link to comment Share on other sites More sharing options...
Julien13720 Posted December 8, 2021 Author Share Posted December 8, 2021 1 hour ago, idnovate.com said: Bonjour Je ne me souviens pas de ce problème. Pouvez-vous nous écrire ici ? https://addons.prestashop.com/contact-form.php?id_product=9129. Peut-être qu'on ne s'est pas compris. Merci. Bonjour, je vous ai acheté un module direct sur votre site où j'ai ouvert un ticket Link to comment Share on other sites More sharing options...
Eolia Posted December 8, 2021 Share Posted December 8, 2021 Il y a 13 heures, Mediacom87 a dit : Ce changement n’aura aucun effet sur la prise en compte de l’ajout au panier. Moi je répondais à ça Le 07/12/2021 à 9:20 AM, Julien13720 a dit : Ou est-il possible de mettre à jour dynamiquement les prix? le développeur ne veut pas faire la modification de son module Parce que la 1ère question, je n'ai toujours pas compris le use case^^ Link to comment Share on other sites More sharing options...
Mediacom87 Posted December 8, 2021 Share Posted December 8, 2021 il y a 6 minutes, Eolia a dit : Parce que la 1ère question, je n'ai toujours pas compris le use case^^ Normal, rien n'est précis dans sa demande. Link to comment Share on other sites More sharing options...
Julien13720 Posted December 8, 2021 Author Share Posted December 8, 2021 Pour être précis, j'utilise le module idnovate : Augmentation/Baisse de prix par groupe, catégorie... j'ai créé les règles, ça fonctionne dans le panier ou quand je réactualise la page catégorie. Si je ne réactualise pas la page, la promotion ne se met pas en "dynamique", le prix reste le même. J'ai contacté le développeur, il m'a répondu qu'il ne pouvait pas le faire... Donc je cherche un moyen de mettre à jour les prix dynamiquement quand une règle de promotion est remplie ou de créer un refresh automatique de la page après avoir ajouter un produit au panier. Link to comment Share on other sites More sharing options...
Eolia Posted December 8, 2021 Share Posted December 8, 2021 Il faut bien comprendre comment fonctionne un serveur web. Une fois la page générée et envoyé au client dans son navigateur, celle-ci n'est plus reliée à votre serveur. Si vous voulez que la page affichée soit modifiée au moment même où vous changeriez des prix il faudrait envoyer toutes les secondes une requête ajax depuis le navigateur du client qui irait interroger un fichier dans lequel serait stockées les dernières modifs de prix suivant les id produits ou catégorie. Si le résultat concernerait la page affichée il faudrait alors envoyer un refresh à la page concernée. Si je comprends votre problème c'est au moment où vous créez les règles en fait, vous voudriez que tous les clients qui ont une page ouverte voient la modification, c'est cela ? Parce que ceux qui arrivent juste après la verront forcément. Link to comment Share on other sites More sharing options...
BKaernel Posted December 8, 2021 Share Posted December 8, 2021 (edited) 3 hours ago, Julien13720 said: Si je ne réactualise pas la page, la promotion ne se met pas en "dynamique", le prix reste le même. J'ai contacté le développeur, il m'a répondu qu'il ne pouvait pas le faire... Donc je cherche un moyen de mettre à jour les prix dynamiquement quand une règle de promotion est remplie ou de créer un refresh automatique de la page après avoir ajouter un produit au panier. A mon avis, tu n'as pas compris le fonctionnement du cache de navigateur. ( Je te laisse faire une recherche...) Quand une page se charge sur ton ordinateur, elle va chercher les infos à l'instant T sur le serveur. Si entre temps, tu modifie le prix, celui qui est affiché chez toi sur ton navigateur ne va pas se mettre à jour automatiquement tant que tu ne recharges pas la page. Ce fonctionnement est normal et souhaitable pour ne pas surconsommer inutilement des données, donc de l'énergie. Sinon, ce n'est plus 20%(sources à vérifier?) des ressources énergétiques mondiale que l'internet va consommer mais 3 fois plus. Mais quand tu changes un prix ou une info, il y a une mise à jour de l'info qui se fait. C'est obligé. Quel intérêt de mettre à jour des infos sans rechargement de page ? Sinon, ne pas confondre avec l'AJAX qui met à jour les affichages de page sans les recharger. Mais çà c'est autrechose. Mieux vaut bien comprendre le système des caches avant de regarder cette option. Donc ton module est bon, et c'est normal qu'il n'est pas donné suite. Edited December 8, 2021 by Bertrand-Kaer (see edit history) Link to comment Share on other sites More sharing options...
Julien13720 Posted December 8, 2021 Author Share Posted December 8, 2021 Je poste une vidéo pour me faire comprendre, c'est plus simple... Quand on arrive à 48€, le prix des capsules baissent, je veux juste que ça le fasse en temps réel... comme quand on change un produit dans le panier. https://watch.screencastify.com/v/VoyJts54n5kLqsItSrZI Link to comment Share on other sites More sharing options...
Julien13720 Posted December 8, 2021 Author Share Posted December 8, 2021 3 hours ago, Eolia said: Si vous voulez que la page affichée soit modifiée au moment même où vous changeriez des prix il faudrait envoyer toutes les secondes une requête ajax depuis le navigateur du client qui irait interroger un fichier dans lequel serait stockées les dernières modifs de prix suivant les id produits ou catégorie. Si le résultat concernerait la page affichée il faudrait alors envoyer un refresh à la page concernée. Si je comprends votre problème c'est au moment où vous créez les règles en fait, vous voudriez que tous les clients qui ont une page ouverte voient la modification, c'est cela ? Parce que ceux qui arrivent juste après la verront forcément. Pas du tout, j'ai posté une vidéo, c'est plus simple https://watch.screencastify.com/v/VoyJts54n5kLqsItSrZI Link to comment Share on other sites More sharing options...
Julien13720 Posted December 8, 2021 Author Share Posted December 8, 2021 2 hours ago, Bertrand-Kaer said: A mon avis, tu n'as pas compris le fonctionnement du cache de navigateur. ( Je te laisse faire une recherche...) Quand une page se charge sur ton ordinateur, elle va chercher les infos à l'instant T sur le serveur. A mon avis je n'arrive pas à me faire comprendre hihi Link to comment Share on other sites More sharing options...
BKaernel Posted December 8, 2021 Share Posted December 8, 2021 14 minutes ago, Julien13720 said: A mon avis je n'arrive pas à me faire comprendre hihi Avec la vidéo c'est plus explicite... typiquement c'est de l'AJAX (mise à jour sans rechargement de page) T'as un lien vers le module ? Un lien avec une demo ? Link to comment Share on other sites More sharing options...
Julien13720 Posted December 8, 2021 Author Share Posted December 8, 2021 13 minutes ago, Bertrand-Kaer said: Avec la vidéo c'est plus explicite... typiquement c'est de l'AJAX (mise à jour sans rechargement de page) T'as un lien vers le module ? Un lien avec une demo ? https://store.idnovate.com/fr/gestion-des-prix/1378-augmentation-baisse-de-prix-par-groupe-categorie.html Link to comment Share on other sites More sharing options...
BKaernel Posted December 8, 2021 Share Posted December 8, 2021 (edited) Ce module n'a aucun rapport avec ce que tu veux faire. Il permet de modifier les prix en masse... C'est tout. Prestashop le permet nativement si je ne m'abuse. Je n'ai plus la souvenance de la manière de faire mais tu crées des conditions et selon les quantités, les prix changent automatiquement. Pour les pages produits en tout cas, pas dans les pages catalog (dans ton exemple vidéo) où là c'est particulier. PS: Bravo aux développeurs pour la démo claire (même si le site pique un peu les yeux 🙂 ) Edited December 8, 2021 by Bertrand-Kaer (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted December 8, 2021 Share Posted December 8, 2021 Ben dans ce cas, modifiez le js du module blockcart à la fonction updateCart: updateCart : function(jsonData) { location.reload(); ..... // code existant } Mais ca va être bof bof au niveau confort utilisateur... Link to comment Share on other sites More sharing options...
BKaernel Posted December 9, 2021 Share Posted December 9, 2021 Pour compléter ce que je disais auparavant, les changements de prix selon les quantités existent nativement dans PRESTASHOP. Inutile de charger un module "externe" pour cela. C'est une règle que tu crée dans : CATALOGUE > REDUCTIONS > REGLES DE PRIX CATALOGUE Tu régles tes paramètres avec les conditions, puis comme tu le montres dans ta vidéo, les prix se changent sans rechargement de page (en AJAX donc) selon les quantités choisies Je viens de tester. Ca marche très bien. Link to comment Share on other sites More sharing options...
idnovate.com Posted December 9, 2021 Share Posted December 9, 2021 On 12/8/2021 at 9:26 AM, Julien13720 said: Bonjour, je vous ai acheté un module direct sur votre site où j'ai ouvert un ticket Ok, lorsque vous avez parlé des promotions, j'ai pensé que vous faisiez référence à ce module https://store.idnovate.com/fr/promotions-et-marketing/1385-promotions-et-reductions-3x2-rabais-offres-packs.html et je ne me souvenais pas d'avoir fait un commentaire sur ce sujet 👍 Après avoir examiné la question, je pense que @Eolia et @Bertrand-Kaer a parfaitement répondu à votre problème (merci). Il serait nécessaire de consulter constamment le serveur pour vérifier les prix des produits. Cela entraînerait une charge importante sur la page: Je comprends que vous devez recharger la page lorsqu'un produit a été ajouté au panier. Et cette solution pourrait vous convenir : 14 hours ago, Eolia said: Ben dans ce cas, modifiez le js du module blockcart à la fonction updateCart: updateCart : function(jsonData) { location.reload(); ..... // code existant } Mais ca va être bof bof au niveau confort utilisateur... Mais attention, dans ce cas, vous ne verrez pas la popup avec le produit ajouté au panier, par exemple. A propos de la réponse que nous vous avons donnée : On 12/7/2021 at 7:09 PM, Julien13720 said: J'imagine bien... mais le développeur ne veut rien entendre... il m'a répondu "c'est pas ds nos intentions de développer cette option" 😔 Nous essayons toujours de faire de notre mieux pour que nos clients soient satisfaits à 100 %, mais vous demandiez une nouvelle fonctionnalité qui ne nous semblait pas appropriée en raison des implications techniques qu'elle pourrait avoir. 🙂 Link to comment Share on other sites More sharing options...
idnovate.com Posted December 9, 2021 Share Posted December 9, 2021 1 hour ago, Bertrand-Kaer said: Pour compléter ce que je disais auparavant, les changements de prix selon les quantités existent nativement dans PRESTASHOP. Inutile de charger un module "externe" pour cela. C'est une règle que tu crée dans : CATALOGUE > REDUCTIONS > REGLES DE PRIX CATALOGUE Tu régles tes paramètres avec les conditions, puis comme tu le montres dans ta vidéo, les prix se changent sans rechargement de page (en AJAX donc) selon les quantités choisies Je viens de tester. Ca marche très bien. Je suppose que vous voulez parler de la page des produits, et non de la page des catégories, qui est ce que vous montrez dans la vidéo. Sur la page de la catégorie, les prix ne sont pas mis à jour de manière dynamique. Il est possible que le client souhaite également appliquer les prix spécifiques s'il achète X unités de plus d'un produit, alors que PS ne permet qu'un seul produit. Link to comment Share on other sites More sharing options...
BKaernel Posted December 9, 2021 Share Posted December 9, 2021 17 minutes ago, idnovate.com said: Je suppose que vous voulez parler de la page des produits, et non de la page des catégories, qui est ce que vous montrez dans la vidéo. Sur la page de la catégorie, les prix ne sont pas mis à jour de manière dynamique. Je parle des régles de réduction natif à Prestashop dans le tableau de bord (à l'adresse que j'ai déjà donnée).Ex: Prix pour 3 prods, prix pour 10 prods... etc... selon des critères divers (catégorie de produit par exemple) Dans ce cas, sur une page produit (en FRONT), les prix s'affichent en fonction de la quantité en AJAX sans rechargement de la page. Rien à voir avec votre module, je pense. Qui permet dans le back-office (je précise car il y a confusion) de changer les prix en masse. Link to comment Share on other sites More sharing options...
idnovate.com Posted December 9, 2021 Share Posted December 9, 2021 17 minutes ago, Bertrand-Kaer said: Qui permet dans le back-office (je précise car il y a confusion) de changer les prix en masse. Pas exactement. Le module vous permet de modifier massivement les prix à partir du backoffice, mais comme s'il s'agissait de prix spécifiques. 18 minutes ago, Bertrand-Kaer said: Ex: Prix pour 3 prods, prix pour 10 prods... etc... selon des critères divers (catégorie de produit par exemple) Mais le module vous permet d'acheter 3 unités d'un produit et 4 unités d'un autre produit de la même catégorie, et le module vous permet de configurer un prix spécifique à partir de 5 unités de produits d'une catégorie, par exemple. PS ne permet pas cette configuration. 19 minutes ago, Bertrand-Kaer said: Dans ce cas, sur une page produit (en FRONT), les prix s'affichent en fonction de la quantité en AJAX sans rechargement de la page. Sur le front-end mais sur la page du produit, pas sur la page de la catégorie. La page de la catégorie n'est pas mise à jour dynamiquement. Link to comment Share on other sites More sharing options...
Julien13720 Posted December 10, 2021 Author Share Posted December 10, 2021 On 12/8/2021 at 7:15 PM, Bertrand-Kaer said: Ce module n'a aucun rapport avec ce que tu veux faire. Il permet de modifier les prix en masse... C'est tout. Prestashop le permet nativement si je ne m'abuse. Je n'ai plus la souvenance de la manière de faire mais tu crées des conditions et selon les quantités, les prix changent automatiquement. Pour les pages produits en tout cas, pas dans les pages catalog (dans ton exemple vidéo) où là c'est particulier. PS: Bravo aux développeurs pour la démo claire (même si le site pique un peu les yeux 🙂 ) Merci de la réponse mais prestashop ne gère pas les déclinaisons pour les prix castalogues Link to comment Share on other sites More sharing options...
BKaernel Posted December 10, 2021 Share Posted December 10, 2021 6 minutes ago, Julien13720 said: Merci de la réponse mais prestashop ne gère pas les déclinaisons pour les prix castalogues Dans PRESTASHOP version 1.7.8.2 : Catalog > Réductions > Règles de prix cataloguehttps://doc.prestashop.com/display/PS17/Regles+de+prix+catalogue Link to comment Share on other sites More sharing options...
Eolia Posted December 10, 2021 Share Posted December 10, 2021 il y a 9 minutes, Julien13720 a dit : Merci de la réponse mais prestashop ne gère pas les déclinaisons pour les prix castalogues Hein???? Link to comment Share on other sites More sharing options...
Julien13720 Posted December 10, 2021 Author Share Posted December 10, 2021 On 12/9/2021 at 10:25 AM, idnovate.com said: Nous essayons toujours de faire de notre mieux pour que nos clients soient satisfaits à 100 %, mais vous demandiez une nouvelle fonctionnalité qui ne nous semblait pas appropriée en raison des implications techniques qu'elle pourrait avoir. 🙂 Je ne remet pas en cause votre professionnalisme, j'utilise plusieurs de vos produits et j'en suis ravi. C'est juste cette fonctionnalité qui me manquait 1 Link to comment Share on other sites More sharing options...
Julien13720 Posted December 10, 2021 Author Share Posted December 10, 2021 1 minute ago, Eolia said: Hein???? par rapport à ce que j'ai besoin ce n'est pas complet. C'est des réductions par paliers avec des pourcentages, et d'autres fonctionnalités que le modules gère bien. Je souhaite juste que les prix se mettent à jour... 😉 je vais essayer votre méthode reload. Merci en tout cas. Link to comment Share on other sites More sharing options...
Julien13720 Posted December 10, 2021 Author Share Posted December 10, 2021 8 minutes ago, Bertrand-Kaer said: Dans PRESTASHOP version 1.7.8.2 : Catalog > Réductions > Règles de prix cataloguehttps://doc.prestashop.com/display/PS17/Regles+de+prix+catalogue Pas comme je le souhaite. Le module rempli toutes les fonctions souhaitées. Link to comment Share on other sites More sharing options...
idnovate.com Posted December 10, 2021 Share Posted December 10, 2021 40 minutes ago, Julien13720 said: par rapport à ce que j'ai besoin ce n'est pas complet. C'est des réductions par paliers avec des pourcentages, et d'autres fonctionnalités que le modules gère bien. Je souhaite juste que les prix se mettent à jour... 😉 je vais essayer votre méthode reload. Merci en tout cas. Une autre option consiste à désactiver le panier AJAX. La page devrait se recharger automatiquement. Link to comment Share on other sites More sharing options...
Julien13720 Posted December 13, 2021 Author Share Posted December 13, 2021 On 12/8/2021 at 7:39 PM, Eolia said: updateCart : function(jsonData) { location.reload(); ..... // code existant } Bonjour, hélas je ne trouve pas le js... il n'y a pas de module blockcart, c'est 1.7.8.2, j'ai un module shoppingcart avec le js ps_shoppingcart Link to comment Share on other sites More sharing options...
Eolia Posted December 13, 2021 Share Posted December 13, 2021 Ajoutez-le à la ligne 75 de ps_shopping_cart.js 1 Link to comment Share on other sites More sharing options...
Julien13720 Posted December 13, 2021 Author Share Posted December 13, 2021 31 minutes ago, Eolia said: Ajoutez-le à la ligne 75 de ps_shopping_cart.js Aucun effet.. Link to comment Share on other sites More sharing options...
Eolia Posted December 13, 2021 Share Posted December 13, 2021 pas d'override de ce fichier du module dans le thème ou autre ? Link to comment Share on other sites More sharing options...
Julien13720 Posted January 10, 2022 Author Share Posted January 10, 2022 Je voulais remercier Eolia, sans qui ce forum ne serait pas autant utile. Solution : Il faut rajouter la ligne en la ligne 74 et 75 dans ps_shoppingcart.js location.reload(); 1 Link to comment Share on other sites More sharing options...
idnovate.com Posted January 10, 2022 Share Posted January 10, 2022 Je suis heureux que vous ayez trouvé une solution à votre problème. Link to comment Share on other sites More sharing options...
Julien13720 Posted January 11, 2022 Author Share Posted January 11, 2022 20 hours ago, idnovate.com said: Je suis heureux que vous ayez trouvé une solution à votre problème. Merci, peut être penser à l'intégrer au module ;-) 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now