Jump to content

Action après mise à jour ajax dans le panier


Recommended Posts

Bonjour,

J'ai développé un petit module qui ne fait rien d'extraordinaire, il se contente d'ajouter un bouton dans la page panier grâce au hook DisplayShoppingCart().

Celui-ci se contente d'envoyer une url à la vue pour que je puisse ensuite effectuer une action dans un contrôleur. Dans la vue j'affiche un bouton qui va ensuite pointer vers mon contrôleur qui lui va effectuer une action (voir capture d'écran). Ici tout se passe bien, ça fonctionne.

Le soucis vient du fait que si je modifie la quantité d'un produit dans mon panier, ce bouton disparaît car l'ajax vient mettre à jour ce morceaux de template (voir seconde capture d'écran). Existe t'il un moyen pour faire en sorte que mon bouton reste visible ?

Comment peut-on intervenir sur cette fonction en ajax pour en modifier le comportement ?

J'ai cherché un peu dans le code, j'ai trouvé quelque chose dans le theme.js du thème Classic mais c'est un fichier minifié.

Avez-vous une idée pour m'aider ?

Merci d'avance

 

btn-after-displayshoppingcart.jpg

btn-displayshoppingcart.jpg

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

Je me réponds à moi-même pour indiquer que mon soucis se trouvait en faite sur une classe que j'avais conservé sur le HTML de mon bouton. Cette classe était masquée en ajax voilà donc pourquoi je perdais l'affichage.

J'ai une autre question, toujours dans le panier.
Il est possible de modifier la quantité via un champ input, mais sur mon site le champ quantité doit être une liste déroulante (select), sauf que celui-ci n'est pas pris en compte dans l'ajax qui met à jour le panier.

Je pense avoir cerné l'endroit où je peux modifier le comportement. Il s'agit du fichier theme.js que l'on trouve dans le dossier "assets/js" du thème "Classic". Sauf que ce fichier est un fichier minifié.

J'ai trouvé sur Github le thème Classic avec une arborescence composée d'un dossier "_dev" que je n'ai pas sur le mien et qui contient les fichiers cart.js (celui qui m'intéresse), checkout.js, customer.js etc... J'en déduis que le thème de production possède un fichier theme.js qui englobe tout ces fichiers JS pour n'en charger qu'un seul.

Du coup, comment je peux faire pour modifier ce cart.js ?

J'ai essayé de mettre le thème de dev à la place du mien, ça fait sauter toute ma mise en page.
Existe-il un moyen de modifier le cart.js puis de le compiler à nouveau pour générer à nouveau le theme.js ?
Ou alors, si je peux directement charger le cart.js plutôt qu'un fichier minifié ça me va aussi.

Merci d'avance pour votre aide

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...