[12.0.09] - Problème avec Snipcart (hors module)

Bonjour,
Bonne année !
J'ai récemment mis à jour le site de mon association : https://comitehistoriquehersincoupigny.fr
Il tourne sur ZWII depuis longtemps (de mémoire au moins 6 ans, facile)
J'avais été l'un des premiers à avoir installer SNIPCART dessus pour pouvoir établir une boutique en ligne (ce qui a inspiré le module de Sylvain) - mais comme j'avais déjà "codé" en dur dans l'HTML de l'éditeur tous mes produits, j'ai toujours utilisé une version codée directement dans l'éditeur sans installer de module. Tant que ça marche !
Le problème actuel, c'est que l'ajout au panier génère bien la page du panier snipcart mais celui-ci mouline avec un sublime message : Nous préparons votre panier… (j'ai constaté un léger bandeau en haut de la page, orange/jaune qui s'efface juste au chargement de celle-ci, très très rapide)
J'ai pensé que cela pouvait venir de l'ancien script snipcart, je l'ai donc remplacé dans le Body par le nouveau, méthode recommandée après la balise <body> (voir sur le site : https://docs.snipcart.com/v3/setup/installation - j'ai bien mis la bonne API Key)*
Ma dernière commande effective sur le site date du 10 juin 2022 ; je m'étais un peu inquiété ces dernières semaines car en général, on a une à 2 commandes par mois ; mais à priori, en test de chargement de panier, ça fonctionnait encore bien durant l'automne.
Le JS n'est pas du tout ma tasse de thé, je ne vois pas ce qui peut clocher de part et d'autre ?
J'ai essayé sur les principaux navigateurs Safari, Chrome, Edge, W10 & MacOs
D'avance merci pour toutes idées ?
Clément
* En tentant de mettre le script directement dans le corps de ce texte, j'ai remarqué qu'il ajoutait des <span> à pas mal d'endroit du script, est ce possible que ça soit le cas dans l'éditeur situé dans configuration > script externes > script dans body ?
Bonne année !
J'ai récemment mis à jour le site de mon association : https://comitehistoriquehersincoupigny.fr
Il tourne sur ZWII depuis longtemps (de mémoire au moins 6 ans, facile)
J'avais été l'un des premiers à avoir installer SNIPCART dessus pour pouvoir établir une boutique en ligne (ce qui a inspiré le module de Sylvain) - mais comme j'avais déjà "codé" en dur dans l'HTML de l'éditeur tous mes produits, j'ai toujours utilisé une version codée directement dans l'éditeur sans installer de module. Tant que ça marche !
Le problème actuel, c'est que l'ajout au panier génère bien la page du panier snipcart mais celui-ci mouline avec un sublime message : Nous préparons votre panier… (j'ai constaté un léger bandeau en haut de la page, orange/jaune qui s'efface juste au chargement de celle-ci, très très rapide)
J'ai pensé que cela pouvait venir de l'ancien script snipcart, je l'ai donc remplacé dans le Body par le nouveau, méthode recommandée après la balise <body> (voir sur le site : https://docs.snipcart.com/v3/setup/installation - j'ai bien mis la bonne API Key)*
Ma dernière commande effective sur le site date du 10 juin 2022 ; je m'étais un peu inquiété ces dernières semaines car en général, on a une à 2 commandes par mois ; mais à priori, en test de chargement de panier, ça fonctionnait encore bien durant l'automne.
Le JS n'est pas du tout ma tasse de thé, je ne vois pas ce qui peut clocher de part et d'autre ?
J'ai essayé sur les principaux navigateurs Safari, Chrome, Edge, W10 & MacOs
D'avance merci pour toutes idées ?
Clément
* En tentant de mettre le script directement dans le corps de ce texte, j'ai remarqué qu'il ajoutait des <span> à pas mal d'endroit du script, est ce possible que ça soit le cas dans l'éditeur situé dans configuration > script externes > script dans body ?
Post edited by fred on
0
Connectez-vous ou Inscrivez-vous pour répondre.
Commentaires
La lecture de la console, affiche une tonne d'erreurs :
Va falloir déboguer...
Merci pour ta réponse, j'ai vu avec la console de safari effectivement que les ressources ne se chargeaient pas ? 404. Ca provient de snipcart ?
Sur la console de Safari, j'ai ça
J'ai eu une réponse de Snipcart, il me dit que le script est appelé 2 fois, ce qui peut effectivement bloquer la connexion avec les serveurs Snipcart.
On a constaté effectivement que lorsque l'on mettait le script dans Configuration > Script dans Body, il était généré 2 fois sur les pages du site.
Lorsque l'on le met uniquement sur la page via Editer la Page > Extension > Editeur JS : là ça n'apparaît qu'une fois
Il y aurait un souci peut-être de templating qui duplique le script quand on passe par Configuration > Body.
L'erreur de script est corrigée mais le bloquage CORS reste ; snipcart bloque ; il y aurait donc peut-être un problème au niveau de l'application ZWII, il manquerait des header dans les requêtes générées de l'appli qui permettraient de passer la sécurité CORS.
Quelques pistes
- Proxy CORS
- Bibliothèque JS qui génère les en-têtes CORS
- Modification sur Serveur pour générer des en-têtes CORS
A voir, j'analyse encore
Clément
Meilleurs voeux !
Les erreurs CORS seront liées aux transactions avec le serveur Snipcart, je te laisse creuser le problème.
Fred
Si vous n'avez pas le contrôle sur le serveur situé à https://cdn.snipcart.com, vous pouvez utiliser un proxy CORS pour faire la requête. Un proxy CORS est un serveur qui vous permet d'envoyer une requête à lui, puis il fait la requête au serveur de destination à votre place, en ajoutant les en-têtes CORS nécessaires à la réponse.
Qu'en penses tu ?
A te lire
Clément
Réponse à ton avant-dernier message, il y avait effectivement un double appel, c'est corrigé dans 12100.
Quant à ton pb de CORS, j'avoue le découvrir en même temps que toi. Je pense que le cas 3 est la seule solution simple, cela-dit, c'est sans avoir appronfondi.
Qu'en pense le support SnipCart ?
Fred
J'ai trouvé cela sur les erreurs CORS
https://developer.mozilla.org/fr/docs/Web/HTTP/CORS
J'ai tenté ce script
en remplaçant l'url par la ressource CDN mais ça n'a pas fonctionné Je bloque A te lire Clément
https://forum.zwiicms.fr/discussion/478/12-0-09-comment-utiliser-lediteur-js#latest
Ton problème a peut-être la même cause.
Désolé pour ma réponse tardive. De snipcart, au niveau du support, je n'ai eu que la réponse concernant le fait qu'il y avait un double appel. (Script dupliqué) ; j'ai vu le problème des scripts au niveau de l'éditeur.
Quel est donc la solution que tu préconises pour l'incorporation des scripts JS de Snipcart (https://docs.snipcart.com/v3/setup/installation)
La 12.1 est disponible sur le Github? sinon quand serait-elle disponible par mise à jour via l'application ?
1. Je tente les scripts Snipcart seuls, et 2. si ça bloque au niveau du CORS, je tente de reclaquer le script JS pour les entêtes (peut-être en appelant cette fois une bibliothèque JS). Sinon, après je bloque et ça posera un problème de sousous (car la boutique est intéressante pour l'association).
A te lire
Clément
J'ai trouvé cela (https://auth0.com/blog/cors-tutorial-a-guide-to-cross-origin-resource-sharing/) pour ajouter des entêtes CORS à l'application.
Si cela peut aider ; de ce que je comprends maintenant si une application doit aller chercher une ressource sur un serveur extérieur, certains bloquent la requête si celle-ci n'est pas signée
A te lire
Clément
C'est ça, voilà pourquoi je ne comprends pas la démarche de Snipcart, c'est quand même leur script à eux.
J'ai réinstallé 11.5.13, le problème Snipcart a disparu ; la sauvegarde était resté sur les anciens scripts, donc ils ont été restauré.
[Error] The #snipcart div was removed from the document. This may happen when a frontend library is used to render the div. You should only render it once, or it might prevent the cart from working.
On dirait que la div est rendue 2 fois, peut-être déjà un problème de duplication dans les scripts template du 11 ?
J'ai posté un message sur notre FB, pour avoir des REX, je vais voir si les personnes, à l'usage, peuvent aller au bout du processus et finaliser leurs commandes.
A te lire
Clément
Mêmes problèmes avec le module : j'ai passé mon site de tests de la version 11.5.11 à la 12.0.09 ce matin.
Ça fonctionne en 11 mais plus en 12.
Pourrais-tu partager le module ? Pas moyen de le retrouver.
j'ai eu une réponse du support de snipcart : comme entretemps, je suis repassé sur V11, ils ont regardé sur celle-là ; un truc bizarre : ils me disent que : "quand je consulte votre site en date d'aujourd'hui vous semblez avoir retiré Snipcart de votre site web" ; Or, j'ai rétabli la V11 intégralement avec tous les scripts et la mise au panier fonctionne. Peut-être une piste ?
Je leur ai répondu et j'ai profité pour demander s'ils peuvent nous épauler sur ce problème pour mieux cerner l'origine (j'ai précisé le CMS, les versions, etc.) ; j'ai demandé s'ils avaient modifié de leur côté des configurations. J'attends réponse et je vous tiens au courant
Clément
J'ai eu une réponse de Snipcart, intéressante, le problème du doublement de script est déjà présent dans la v11.5.13
-> Vous avez encore, malgré avoir downgradé la version de votre site, le script d'installation de Snipcart en double. Il faudrait retirer le premier appel au cdn de snipcart. Le fait d'avoir deux fois le script de snipcart enregistre tous les évènements en double et cela peut causer plusieurs différents effets de bord.
A vous lire
Clément
Dans la cas de @ClementL qui n'utilise pas le module je ne pense pas que cela ait une importance, par contre moi avec le module certainement, car TinyMCE me dit Échec d'initialisation du plug-in : snipcart.