Xav5402 Posted January 16, 2020 Share Posted January 16, 2020 Bonjour, Je m'occupe du site d'une boutique qui vend à la fois des produits dématérialisés et des produits classiques. Les produits classiques sont envoyés par la poste. Les produits dématérialisée sont disponibles au téléchargement dés que le paiement est accepté. J'aimerais faire en sorte que le choix "quantité" ne soit disponible que pour les produits classiques et pas pour les produits dématérialisés. Depuis plusieurs jours, je fait des recherches sur ce forum et sur internet sans parvenir à trouver une solution qui me satisfasse. J'utilise un PRESTASHOP 1.7.6.2 Je travaille en local via MAMP. Je pense que la solution est de passer via le custom.css de mon thème. J'ai trouvé ce code : .product-quantity .qty { display: none; Il fait disparaitre le champs quantité( j'ai testé), mais il le fait pour tous les produits, ce que je ne veux pas. Dans la base de données du site, dans la table product, il existe un champs is_virtual (valeur 0 ou 1) qui fait le distinguo entre produits dématérialisée et produits classiques (en tout cas c'est ce que je pense) Je ne trouve pas comment écrire le code qui fera disparaitre ou apparaitre le choix de quantité en fonction de la valeur de is_virtual ( qui ne peut être que 0 ou 1) Quelqu'un aurait peut il m'aider ? En même temps j'apprendrais :) merci. Xav. Link to comment Share on other sites More sharing options...
Mediacom87 Posted January 16, 2020 Share Posted January 16, 2020 Bonjour, dans le fichier de votre template /templates/catalog/_partials/product-add-to-cart.tpl si vous essayez de remplacer <div class="qty"> <div class="qty"> par <div class="qty{if $product.is_virtual} hidden{/if}"> je n'ai pas vérifié que la classe hidden existe mais au pire vous la rajoutez dans le custom.css et je n'ai pas non plus contrôler que la variable is_virtual soit proposée dans le tableau de $product mais cela donne l'idée de départ en tout cas. Link to comment Share on other sites More sharing options...
Xav5402 Posted January 16, 2020 Author Share Posted January 16, 2020 30 minutes ago, Mediacom87 said: Bonjour, dans le fichier de votre template /templates/catalog/_partials/product-add-to-cart.tpl si vous essayez de remplacer <div class="qty"> <div class="qty"> par <div class="qty{if $product.is_virtual} hidden{/if}"> je n'ai pas vérifié que la classe hidden existe mais au pire vous la rajoutez dans le custom.css et je n'ai pas non plus contrôler que la variable is_virtual soit proposée dans le tableau de $product mais cela donne l'idée de départ en tout cas. Merci pour votre réponse, je vais aller essayer cela tout de suite, je ne suis pas sur de savoir rajouter une classe mais ce sera l'occasion d'apprendre Link to comment Share on other sites More sharing options...
Xav5402 Posted January 16, 2020 Author Share Posted January 16, 2020 Bon bah ça ne fonctionnes pas... je creuser quelqu'un a une pelle ? Link to comment Share on other sites More sharing options...
Mediacom87 Posted January 16, 2020 Share Posted January 16, 2020 je viens de tester et cela fonctionne très très bien, la lasse hidden s'affiche bien que si le produit est virtuel, mais bon comme elle n'est pas définie en 1.7 il faut la créer dans le fichier custom.tpl pour qu'elle cache l'élément souhaité. Je vous laisse chercher comme définir cette classe c'est la base de la base donc il est nécessaire de connaitre cela. Link to comment Share on other sites More sharing options...
Xav5402 Posted January 16, 2020 Author Share Posted January 16, 2020 J'ai quelques notion lointaines, je vais les rafraîchir merci pour votre aide. Link to comment Share on other sites More sharing options...
Xav5402 Posted January 20, 2020 Author Share Posted January 20, 2020 Bonjour, Alors voici le résultat de mon "petit apprentissage", si ça peux en aider quelques-uns. Pour résoudre mon problème, j'ai suivi le conseils de Mediacom87 J'ai déclaré .hidden dans mon custom.css comme suit : Quote .hidden{ display: none } Ensuite j'ai appliqué la solution donnée par Medicom87, à savoir modifier le template product-and-to-cart.tpl en y remplaçant la ligne : Quote <div class="qty"> Par Quote <div class="qty{if $product.is_virtual} hidden{/if}"> Et ça fonctionne (Comme me l'avait dit Mediacom87) En plus, maintenant je comprend un peu mieux le CSS ! Maintenant je vais essayer de faire disparaitre le label "Quantité" selon les mêmes règles. Merci à Mediacom87 ! Link to comment Share on other sites More sharing options...
Xav5402 Posted January 20, 2020 Author Share Posted January 20, 2020 (edited) Hé bien une fois qu'on a compris le principe... c'est plutôt facile : J'ai appliqué mon Hidden conditionnel à l'élément supérieur <div class="product-quantité Row sm-bottom"> au lieu de simplement l'appliquer à <div class="qty">, puisque cet élément supérieur contient le label que je voulais faire disparaitre {block name='product_quantity'} <div class="product-quantity row sm-bottom{if $product.is_virtual} hidden{/if}"> <label class="form-control-label col-3">{l s='Quantity' d='Shop.Theme.Catalog'}</label> <div class="col-9"> <div class="qty"> <input type="number" name="qty" id="quantity_wanted" value="{$product.quantity_wanted}" class="form-control" min="{$product.minimal_quantity}" aria-label="{l s='Quantity' d='Shop.Theme.Actions'}" /> </div> </div> </div> {/block} Edited January 20, 2020 by Xav5402 (see edit history) 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