okz Posted April 1, 2021 Share Posted April 1, 2021 (edited) Bonjour, Je vous explique ma demande plutôt spécifique. Je souhaiterai modifier le texte "ajouter au panier" sur tous mes produits qui ont l'attribut "en occasion" par le texte "CE_QUE_JEVEUX" voilà la requête SQL qui permet de selectionner tous les produits en occasion --> SELECT * from ps_product_shop where `condition` = 'refurbished'; SELECT * from ps_product where `condition` = 'refurbished'; Maintenant que tout ces produits sont séléctionnés, j'aimerai modifier sur l'ensemble de mon site la class qui s'appelle 'lblcart' permet à priori de modifier le texte site www.shin-sekai.fr peut être qq chose à faire avec du cutom JS ? Merci pour vos retours Edited April 6, 2021 by okz (see edit history) Link to comment Share on other sites More sharing options...
Remy FRK Corp Posted April 4, 2021 Share Posted April 4, 2021 (edited) Bonjour okz. Vous parlez bien du bouton "ajouter au panier" (sauf erreur de ma part je ne vois pas d'autres endroits...ha bhé oui on voit ça sur votre copie d'écran) ? Votre approche me semble originale, concernant la BDD je ne serais quoi dire, si ce n'est qu'il faut l'aimer de tout votre cœur. En revanche avec du JS le monde nous appartient ! Toutefois laissons de coté cuStom JS et attaquons en Python !!! Arf hélas je viens de réaliser que j'ai une peur bleu (et jaune) des serpents... Bon tan'pis. Du coup allez via votre FTP dans: themes/votre theme/template/catalog/_partials/product-add-to-cart.tpl (pour PS 1.7xx) ou dans product.tpl (pour PS 1.6 il me semble) Trouvez y votre bouton qui en 1.7 ressemble à ça : <div class="add"> <button class="btn btn-primary add-to-cart" data-button-action="add-to-cart" type="submit" {if !$product.add_to_cart_url} disabled {/if} > <i class="material-icons shopping-cart"></i> {l s='Add to cart' d='Shop.Theme.Actions'} </button> </div> Là remplacez : {l s='Add to cart' d='Shop.Theme.Actions'} Par quelque chose qui ressemble à ça : {if $product.condition.label == 'Reconditionné'} {l s='ce que je veux'} {else} {l s='Add to cart' d='Shop.Theme.Actions'} {/if} Bon après vous avez sans doute un thème spécifique, qui diffère un peu, ou êtes en 1.6 donc peut être un code smarty un poil différent, que sais-je, je n'ai hélas pas testé sur cette noble mouture qu'est 1.6xx (votre copie d'écran me dit ou 1.6 ou... plutôt thème spe en 1.7xx à vrais dire)... auquel cas : adaptez vous vous ... vous voyez l'idée. testé en 1.7xx classic : Edited April 4, 2021 by Remy FRK Corp (see edit history) 2 Link to comment Share on other sites More sharing options...
okz Posted April 4, 2021 Author Share Posted April 4, 2021 Hello ! Merci pour ta réponse et surtout le temps que tu as accordé à cette demande plutôt louffoque ! Bon, alors ce n'est pas exactement comme je voulais mais avec ce que tu proposes, il faut que l'état soit affiché par défaut lors de la création d'un article. cela me dérangeait mais grâce à toi j'ai pu résoudre mon problème !!! Je t'explique juste pour info comment j'ai raisonné. J'ai donc procédé de la sorte : - J'ai crée une tâche CRON qui exécute toutes les minutes la requête SQL suivante comme ça toutes les minutes, la totalité des produits auront l'état qui apparait sur leur fiche. (si une personne ajoute 15 produits par exemple, une minute plus tard, on verra l'état qui apparait sur leur fiche) et également qui met l'état que je veux, (ici refurbished) pour tous les produits contenu dans la catégorie que je souhaite. Je ne souhaitais pas que l'état apparaisse sur les fiches produits donc, j'ai modifié --> themes/votre theme/template/catalog/_partials/product-details.tpl <div class="product-condition" style="display: none;"> donc le résultat est que sur une fiche produit, on ne voit pas l'état du produit qui apparaît MAIS il est bien présent. Du coup, dès lors qu'on modifie {if $product.condition.label == 'Reconditionné'} {l s='ce que je veux'} {else} {l s='Add to cart' d='Shop.Theme.Actions'} {/if} dans le fichier themes/votre theme/template/catalog/_partials/product-add-to-cart.tpl comme tu m'as expliqué, on a le bouton qui change par ce que je veux de manière automatisé. MERCI encore à toi !!! Link to comment Share on other sites More sharing options...
Remy FRK Corp Posted April 5, 2021 Share Posted April 5, 2021 (edited) Salut Tu pourrais m'expliquer la partie CRON à nouveau ? Précisément tu en attend quoi, j'ai pas compris ? il y a bien moyen de combiner avec des conditions style : {if $id_category_current == 12 or $id_category_parent == 12} ou : {if $product.id_category_default == 12} mais... Enfin de toute façon si tes produits sont "refurbished" as tu vraiment besoins de chercher après la catégorie ? Tu souhaites que seuls les produits "refurbished" et d'une certaine categorie aient leurs texte de bouton qui changent ? Edited April 5, 2021 by Remy FRK Corp (see edit history) Link to comment Share on other sites More sharing options...
okz Posted April 5, 2021 Author Share Posted April 5, 2021 (edited) Je m'en doutais. Alors, il y a autre chose à prendre compte, c'est que j'ai également besoin de pouvoir "filtrer" les produits "refurbished" lors de recherches par un utilisateur par exemple. (ici refurbished=précommande) Donc je résume le but du jeu 1. Il faut que tous les articles faisant partie de la catégorie 12 aient automatiquement l'état refurbished. Par défaut lorsqu’un article est crée il est en état "new" J'ai donc procéder à la requête SQL suivante : UPDATE ps_product_shop ----> table des produits SET `condition` = 'refurbished' ---> modification de l'état en refurbished WHERE id_product IN (SELECT id_product FROM ps_category_product WHERE id_category = 12); ---> Pour tous les produits faisant partie de la catégorie 12 (précommandes) et j'ai automatisé cela via un job CRON toutes les minutes : CREATE EVENT `UPDATE 1` ON SCHEDULE EVERY 1 MINUTE ON COMPLETION NOT PRESERVE ENABLE DO UPDATE ps_product_shop SET `condition` = 'refurbished' WHERE id_product IN (SELECT id_product FROM ps_category_product WHERE id_category = 12) --> donc si je rajoute 150 produits, 1min plus tard, leur état seront automatiquement en refurbished (précommande) Ensuite, ce que tu m'a dit intervient. Il faut que tous les articles ayant pour texte "précommande" dans leur état puisse avoir le bouton où j'écris "ce que je veux" chose que j'ai faite et qui fonctionne. ton code ne marchait uniquement si cette case est cochée sur les fiches produits : J'ai donc mis en place une requêtes pour que cette case soit coché sur la totalité des produits. UPDATE ps_product_shop --> update de la table produit SET `show_condition` = '1'; ----> cocher "afficher l'état du produit" sur tout les produits de la table. ce qui me permet de valider ta solution. mais comme effectivement je peux faire {if $id_category_current == 12 or $id_category_parent == 12} je n'ai plus besoin de le faire... J'espère que tu arriveras à comprendre Edited April 5, 2021 by okz (see edit history) Link to comment Share on other sites More sharing options...
Remy FRK Corp Posted April 5, 2021 Share Posted April 5, 2021 (edited) oki Edited April 5, 2021 by Remy FRK Corp (see edit history) 1 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