Zebx
Inscrit le :
08/02/2014
Messages :
31
|
Publié :
06/08/2014 01:55:43
"Citer"
Hello,
J'utilise un module pour intégrer les boutons de partage AddThis sur toutes mes pages produits (et catégories).
Tout marche nickel sauf que lorsque j'ajoute une image sur un nouveau produit via PrestaPricing (ou à priori si je souhaite modifier une ancienne image de couverture), la balise meta "og:image" utilisée par AddThis ne se met pas à jour dans le header... et donc les photos destinées à être affichées sur les réseaux sociaux ne sont pas correctes.
Le fait est que AddThis met en cache le header contenant cette balise meta et il ne supprime ce fichier en cache pour le mettre à jour que lorsque les hooks ActionObjectProductUpdateAfter et ActionObjectProductDeleteAfter sont exécutés.
La question est donc : serait-il possible de faire en sorte que PrestaPricing exécute lui aussi ces hooks lors de l'ajout/modification/suppression de l'image de couverture d'un produit ?
Pour info, je parle de AddThis mais le module "Partage sur les réseaux sociaux" fourni par défaut dans Prestashop fonctionne exactement sur le même principe, donc le même "bug" doit survenir aussi avec lui.
A noter aussi que je n'utilise pas (encore) PrestaCatégories donc je ne sais pas comment fonctionne l'ajout d'images dans ce soft, mais côté module de partage le principe est le même avec l'exécution nécessaire de ActionObjectCategoryUpdateAfter et ActionObjectCategoryDeleteAfter.
A+
Zebx
|
Sitolog
Inscrit le :
04/12/2011
Messages :
524
|
Publié :
13/08/2014 13:39:42
"Citer"
Bonjour,
J'ai déjà évoqué cette problématique sur le forum je crois.
Il y a en effet beaucoup de modules qui fonctionnent hookés au _productUpdate.
Le cas le plus connu est le module ebay, qui synchronise les produits lorsqu'ils sont modifiés dans le back office.
Du fait que PP (et PC) sont externes au BO, ils n'enclenchent pas les actions associés à ces hooks.
Donc oui, d'accord avec toi et d'autres avant toi, il faudrait que toute action de création,modification, suppression d'un produit ou catégorie dans PP et PC enclenche le hook correspondant dans Prestashop.
Et ça fait un moment que c'est dans la liste des chose importantes à faire.
De nombreux problèmes se posent:
-PP permet de modifier les produits de plus de 200 manières différentes, avec un code assez éclaté. Il faudrait donc reprendre pratiquement chaque bout de code un par un, pour rajouter l'appel du déclencheur.
-PP et PC travaillent "en masse" (x produits à la fois). Or les Hooks de PS ne fonctionnent que pour un seul produit à la fois. Une modif en masse appellerait donc X fois le même hook, en boucle et j'imagine bien que la "robustesse" du code de PS ne supporterait pas cela sans bugger.
-Et surtout, à ce jour, je n'ai pas trouvé comment déclencher à distance les Hooks. Je n'ai pas vu de méthode publique permettant de le faire. Ce qui signifie qu'il faudrait modifier ou surclasser pas mal de bout de code de PS pour le faire.
Donc, en conclusion, OUI, mais pas simple...
Crdlt
Franck
|
Zebx
Inscrit le :
08/02/2014
Messages :
31
|
Publié :
13/08/2014 14:28:13
"Citer"
Ok, je vois, pas simple en effet du coup...
Ceci dit pour des modules comme Ebay, je suppose qu'en général ils disposent aussi de tâches cron qui permettent de synchroniser le catalogue.
Ce qui permettrait donc quand-même de mettre à jour sans devoir ouvrir chaque produit dans le BO...
Peut-être que ça pourrait déjà être sympa pour ces modules si PP proposait un bouton manuel pour déclencher ces tâches cron ? Une idée à tout hasard comme ça en passant
Enfin bon, j'ai pas vraiment une vue globale sur le problème, perso dans le hook productUpdate j'ai que les réseaux sociaux ^^
Donc à priori pas de solution simple... soit faut pas que j'oublie d'aller dans le BO à chaque nouveau produit, soit faut coder une tâche cron perso... mais là euh non ^^
|
Sitolog
Inscrit le :
04/12/2011
Messages :
524
|
Publié :
13/08/2014 15:20:06
"Citer"
Oui bien sûr le module ebay à un bouton pour lancer manuellement la resynchronisation.
Le problème c'est qu'il n'est pas optimisé, il met une plombe. Il ne doit pas savoir filtrer les produits selon leur date de dernière modification.
|