Jump to content

Ajouter une action supplémentaire à "Add to Cart" (Ajouter au panier)


Recommended Posts

Bonjour tout le monde,

 

j’espère que toute la famille prestashop et ses FUN vont bien :D , et bonne années à tous.

 

Alors voila, j'aurai besoin de rajouter une deuxième action au btn "Ajouter au panier",

par exemple quand je clique dessus le produit se rajoute dans le panier + la page se réactualise.

 

J'ai essayer de rajouter une action "onclick" avec une fonction java script "location.reload", ça m'affiche un message d'erreur que le produit ne peux pas se rajouter au panier.

 

je suis sur 1.5.2 , j'ai biens fouillé le forum pour voir si ce problème est déjà entamé, mais j'ai rien trouvé à moins que je me trompe.

 

Merci d'avance pour tout aide ;)

Edited by walmediapro (see edit history)
Link to comment
Share on other sites

Merci T4GAD4 pour votre réponse,

 

le problème c'est que je ne peux pas l’intégrer en PHP vu que le "Refresh" doit être lié à l'action du bouton "add to cart" et l'action de cette dernière est en JAVA SCRIPT.

 

J'ai essayé avec "window.location.reload();" mais ça m'affiche un message d'erreur "Impossible to add the product to the cart.", même si on cliquant sur OK du message d'erreur ça "Refresh" la page.

 

Merci tout de même pour votre réponse ;)

Link to comment
Share on other sites

Salut,

 

Alors, quand tu clique sur le bouton "ajouter au panier", une requête Ajax est envoyée au serveur, ce qui ajoute ton produit à ton panier. Le serveur renvoie ensuite les produits de ton panier, qui sont ensuite afficher dynamiquement (avec même un petit effet d'image qui bouge pour les plus gourmands !)

 

Ce que tu pourrais faire, c'est qu'au lieu de renvoyer le panier, tu renvoie juste un message "success" par exemple. Ça doit se trouver dans le module blockcart.

 

Ensuite,côté site, tu as un script javascript qui permet d'envoyer la requête Ajax et de la traiter. C'est le fichier blockcart/ajax-cart.js. Il faut que tu passe cette requête Ajax en synchrone (pour pouvoir attendre la réponse du serveur sans poursuivre le traitement), et en cas de réponse "success" du serveur, tu peux faire le window.location.

 

Une autre méthode serrait de modifier ton formulaire qui contient le bouton d'ajout au panier (product.tpl), en enlevant l'action du formulaire (pour qu'il se recharge sur la même page), et en cas de réponse "success" renvoyer simplement "true" (ce qui continuera l'action et validera le formulaire et donc redirigera vers la même page).

Link to comment
Share on other sites

Salut, Alors, quand tu clique sur le bouton "ajouter au panier", une requête Ajax est envoyée au serveur, ce qui ajoute ton produit à ton panier. Le serveur renvoie ensuite les produits de ton panier, qui sont ensuite afficher dynamiquement (avec même un petit effet d'image qui bouge pour les plus gourmands !) Ce que tu pourrais faire, c'est qu'au lieu de renvoyer le panier, tu renvoie juste un message "success" par exemple. Ça doit se trouver dans le module blockcart. Ensuite,côté site, tu as un script javascript qui permet d'envoyer la requête Ajax et de la traiter. C'est le fichier blockcart/ajax-cart.js. Il faut que tu passe cette requête Ajax en synchrone (pour pouvoir attendre la réponse du serveur sans poursuivre le traitement), et en cas de réponse "success" du serveur, tu peux faire le window.location. Une autre méthode serrait de modifier ton formulaire qui contient le bouton d'ajout au panier (product.tpl), en enlevant l'action du formulaire (pour qu'il se recharge sur la même page), et en cas de réponse "success" renvoyer simplement "true" (ce qui continuera l'action et validera le formulaire et donc redirigera vers la même page).

 

 

Merci pour t'as réponse,

Je vais essayer ça, même si mes connaissances en Ajax sont trop modestes :D

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...