[email protected] Posted March 16, 2015 Share Posted March 16, 2015 Bonjour à tous, J'utilise le service automatique de mise à jour des taux de change à l'aide du lien "http://www.maboutique.com/admin8877/cron_currency_rates.php?secure_key=56857kgkk898474978Yhhgj898" via tache cron. Le problème est qu'en mode multi-boutique, la boutique 1 est bien mise à jour mais pas la 2. Une idée !!!! Merci Link to comment Share on other sites More sharing options...
AudAbysse Posted June 14, 2017 Share Posted June 14, 2017 Bonjour, Je suis confrontée au même problème avec un Prestashop 1.6.1.3 ! La mise à jour des taux de change fonctionne quand on clique sur le bouton de mise à jour manuelle : - MAJ quand je suis paramétrée en "Toutes les boutiques" -> la MAJ se répercute bien sur chaque boutique. - Même manipulation quand je suis dans ma "Boutique A " -> la MAJ ne se fait que dans celle-ci, et ne s'applique pas à ma "Boutique B". Ce qui est très bien. Je refais ces tests en faisant cette fois appel au webservice via l'url fournie dans l'admin, du type : http://monsite.com/admin****/cron_currency_rates.php?secure_key=********************** - MAJ quand je suis paramétrée en "Toutes les boutiques" -> la MAJ ne s'applique pas du tout sur ma Boutique B. Et sur la boutique A, elle ne s'applique qu'aux Livres sterling, et pas aux Dollards, dont le taux de change ne bouge pas... Par contre quand je me remets en "Toutes les boutiques", les deux devises sont mises à jour. - Même manipulation quand je suis dans ma "Boutique A " -> mêmes résultats qu'à partir de Toutes les boutiques ! (donc aucun effet sur la boutique A, une seule devise MAJ sur la boutique B, les 2 MAJ sur "Toutes mes boutiques"). J'en déduis donc que le webservice appelé ne prend pas du tout en compte le contexte multiboutique. Et je ne m'explique pas du tout la différence de traitement entre les 2 devises, qui sont pourtant, sauf erreur, paramétrées de la même façon, et qui sont correctement mises à jour avec la MAJ manuelle... Quelqu'un aurait-il une explication ? Ou un début de réponse ? Merci d'avance aux contributeurs/trices Link to comment Share on other sites More sharing options...
AudAbysse Posted June 15, 2017 Share Posted June 15, 2017 Problème non résolu, mais j'ai réussi à le contourner à l'aide d'un trigger ! En effet après quelques tests et observations de la BDD, il s'est avéré que la MAJ des taux de change via webservice s'applique bien sur toutes les devises, mais uniquement sur la première boutique sur laquelle chaque devise est activée. En d'autres termes : la table currency était bien mise à jour, mais la table currency_shop ne l'était pas en entier. J'ai donc créé un trigger pour modifier automatiquement le taux de change de la table currency_shop (avec une ligne par boutique), à chaque fois qu'il est modifié dans la table currency. Code de création du trigger : CREATE TRIGGER after_update_currency AFTER UPDATE ON ps_currency FOR EACH ROW UPDATE ps_currency_shop SET conversion_rate = NEW.conversion_rate WHERE id_currency = NEW.id_currency Ou si vous préférez passer par l'interface phpMyAdmin, sélectionnez votre BDD puis cliquez sur le menu Déclencheurs > Ajouter un déclencheur : Nom du déclencheur : after_update_currency Table : ps_currency Moment : AFTER Evénement : UPDATE Définition : UPDATE ps_currency_shop SET conversion_rate = NEW.conversion_rate WHERE id_currency = NEW.id_currency Par contre cette solution ne fonctionne que si vous avez le droit de créer des triggers. En hébergement mutualisé OVH par exemple cela n'est pas possible. Pour ce site je travaille sur un serveur dédié donc pas de souci. Evidemment, cela fonctionne aussi parce que je dois appliquer le même taux de change à chaque boutique. Voilà qui pourra peut-être aider quelqu'un d'autre. 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