PF22 Posted September 4, 2018 Share Posted September 4, 2018 (edited) Salut à tous. Y a deux ou trois trucs que je n'arrive pas à comprendre sur les règles panier. Je suis sous Prestashop 1.6.1.5. Je veux offrir un cadeau aux clients qui commande un produit appartenant à une catégorie spécifique. Donc j'ai créé une règle panier avec dans la partie Actions, l'Envoie d'un cadeau. Déjà lorsque le client va sur un de ces produits permettant d'avoir ce cadeau, rien ne s'affiche sur la fiche du produit pour indiquer l'offre... ? Donc au moment de la commande on voit le produit qui est offert. Mais là, impossible de refuser le cadeau, pas de bouton Supprimer de prévu... C'est pas prévu quelque part ? Faut donc bidouiller le code ? MErci d'avance ! Edited September 5, 2018 by Pat_07 Résolu (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted September 4, 2018 Share Posted September 4, 2018 On ne refuse pas un cadeau^^ Blague à part, la réponse est oui, il faut bidouiller le code. Le bouton "supprimer" n’apparaît pas sinon vous partiriez en boucle infinie à cause de la règle automatique. En effet à chaque suppression ou modification des quantités du panier, Prestashop recalcule les règles panier et donc, va remettre le cadeau si les conditions sont requises. Solution simple: Créez un code pour cette règle et cochez "Mettre en avant", seuls ceux qui le voudront validerons cette offre. Link to comment Share on other sites More sharing options...
PF22 Posted September 4, 2018 Author Share Posted September 4, 2018 Merci @Eolia ! Je me doutais que ça paraissait trop simple de supprimer simplement && empty($product.gift) dans le code... Donc si j'ai bien compris ça veut dire qu'il faut que le client tape un code pour avoir le cadeau ? Ca change quoi de cocher "Mettre en Avant" ? Simplement il va s'afficher dans le récapitulatif de la commande ? On peut pas afficher cette regle lorsque le client passe sur la fiche du produit ? Link to comment Share on other sites More sharing options...
Eolia Posted September 4, 2018 Share Posted September 4, 2018 le client aura juste à cliquer dessus dans son récap panier, même pas besoin de le taper et prenez un code explicite: OFFRE_BIENVENUE par exemple Pour votre fiche produit, vous mettez ce que vous voulez dans la description ou le résumé de votre produit hein^^ Link to comment Share on other sites More sharing options...
PF22 Posted September 4, 2018 Author Share Posted September 4, 2018 Bien compris ça marche ! C'est juste dommage qu'on n'ait pas un affichage automatique des "cadeaux" (regle panier) associés aux produits. Link to comment Share on other sites More sharing options...
PF22 Posted September 13, 2018 Author Share Posted September 13, 2018 J'ai encore une question annexe. Une fois que le client à taper le code de réduction, en l'occurence un cadeau qu'il ne peut recevoir qu'une fois, le code reste visible (car j'ai choisi Mettre en Avant). Ma question est simple il ne disparait pas tout seul une fois ajouté au panier ??? MErci ! Link to comment Share on other sites More sharing options...
Eolia Posted September 13, 2018 Share Posted September 13, 2018 Non car il est toujours valide tant que la commande n'a pas été finalisée, il ne sera plus dispo ensuite. Link to comment Share on other sites More sharing options...
PF22 Posted September 13, 2018 Author Share Posted September 13, 2018 Merci pour la réponse, c'est ce que je craignais... Mais c'est pas un peu contradictoire ? Le code a été saisi, il est donc pris en compte dans le décompte de la commande, mais il apparait toujours comme si on pouvait à nouveau le saisir... ? Link to comment Share on other sites More sharing options...
Eolia Posted September 13, 2018 Share Posted September 13, 2018 (edited) Vous êtes en OnepageCheckout ? Sur les 1.6 au moins, une fois que le code est dans le panier, il n'apparait plus dans les offres s'il n'est disponible qu'une fois. // Get available cart rules and unset the cart rules already in the cart $available_cart_rules = CartRule::getCustomerCartRules($this->context->language->id, (isset($this->context->customer->id) ? $this->context->customer->id : 0), true, true, true, $this->context->cart, false, true); $cart_cart_rules = $this->context->cart->getCartRules(); foreach ($available_cart_rules as $key => $available_cart_rule) { foreach ($cart_cart_rules as $cart_cart_rule) { if ($available_cart_rule['id_cart_rule'] == $cart_cart_rule['id_cart_rule']) { unset($available_cart_rules[$key]); continue 2; } } } Edited September 13, 2018 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
PF22 Posted September 13, 2018 Author Share Posted September 13, 2018 MErci beaucoup Eolia ! Alors je suis en Prestashop 1.6.1.5 et onepage checkout, je ne sais pas si c'est mon thème mais il ne disparait pas automatiquement... Ce code est censé être où? Link to comment Share on other sites More sharing options...
Eolia Posted September 13, 2018 Share Posted September 13, 2018 ce code est dans le controller mais effectivement en opc certains trucs merdouillent et je ne suis pas sûr que cette fonction soit rappelée après l'ajout au panier (en 5 étape la page est rechargée totalement) ou alors oui, c'est un bug du thème Link to comment Share on other sites More sharing options...
PF22 Posted September 13, 2018 Author Share Posted September 13, 2018 Mouaip... J'ai bien ce code dans le fichier ParentOrderController, mais ça me marche pas. en tout cas merci pour ton aide! 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