miles Posted March 14, 2011 Share Posted March 14, 2011 BonjourJ'avais besoin pour ma boutique que l'icone de disponibilité dans la récap du panier soit d'une couleur différente quand mon produit est sur commandeJe vous propose ici le code à ajouter (merci aux pros de me dire s'il y a une erreur en sachant que je débute )Pour celà il faut:que si votre produit est hors stock, autoriser la commande quand même (soit dans préférences, soit dans la fiche produit)1-créer l'icone que vous voulez pour indiquer que le produit est sur commande. Moi j'ai pris l'icone de dispo verte (available.gif que j'ai modifiée en couleur orange)2-enregistrer cette nouvelle icone dans votre dossier icon/img devotre thème (le nom de mon icone est oravailable.gif)3- ouvrir le fichier shopping-cart-product-line.tpl de votre thème et faire les modifs suivantes:3a-- vers la ligne 11trouver {if $product.active AND ($product.allow_oosp OR ($product.quantity <= $product.stock_quantity))} {else} {/if} et remplacer par: {if $product.active AND ($product.quantity <= $product.stock_quantity)} {elseif $product.active AND ($product.allow_oosp )} {else} {/if} en fait on a rajouté une condition:si le produit est actif et la quantité supérieure à 0:icone vertesi le produit est actif , plus dispo mais commandable : icone orangesi aucune de ces conditions icone rouge c'est à dire si produit pas dispo et non commandable4- vous pouvez si vous le souhaitez ajouter une explication pour le client, moi j'ai mis "icone orange" article sur commande, ce produit ne peut bénéficier de la livraison 48h; merci de vous référer à la fiche produit pour connaitre le délai de livraisonpour celà ouvrez le fichier shopping-cart.tpl de votre thème, vous ajoutez où vous voulez (par ex avant {if $voucherAllowed}) la ligne suivante: article sur commande, ce produit ne peut bénéficier de la livraison 48h; merci de vous référer à la fiche produit pour connaitre le délai de livraison et voilà, pour rappel je ne suis pas un pro j'ai appris grâce au forum, donc n'hésitez pas à me corriger si besoinmiles Link to comment Share on other sites More sharing options...
jp77 Posted March 16, 2011 Share Posted March 16, 2011 bonjour Milesmerci pour ton idée d'ajout au moins de cette façon pour les clients c'est bien plus clair et moins de probleme pour nous et surtout de discussions.Car beaucoups ne savent pas lire les stocks semble t'il !cordialement Link to comment Share on other sites More sharing options...
Le-cathare Posted July 2, 2011 Share Posted July 2, 2011 Bonjour,Je viens de tester sur PS 1.4.3, cela à l'air de fonctionner.Merci Link to comment Share on other sites More sharing options...
Bouh Posted July 2, 2011 Share Posted July 2, 2011 Merci miles,bonne idée merci de l'avoir partagé Link to comment Share on other sites More sharing options...
olivier.lh Posted July 2, 2011 Share Posted July 2, 2011 merci Link to comment Share on other sites More sharing options...
Le-cathare Posted October 20, 2012 Share Posted October 20, 2012 Bonjour Bon ok pour le point vert et orange, mais pour le rouge sa fonctionne pas chez moi. comment faire Link to comment Share on other sites More sharing options...
Le-cathare Posted October 20, 2012 Share Posted October 20, 2012 (edited) C bon, j'avais oublier un " par contre le message j'arrive pas Edited October 20, 2012 by Le-cathare (see edit history) Link to comment Share on other sites More sharing options...
A1TH Posted November 22, 2012 Share Posted November 22, 2012 (edited) Bonsoir, Je viens de mettre en place cette technique en place, sur PS 1.4.9.0, ça marche très bien ! Par contre je souhaiterai que l'explication au client (expliqué en étape 4 par Miles) n’apparaissent que quand il y a un produit dans le cas "orange" dans le panier. Sinon, inutile qu'il apparaissent. Actuellement, ce commentaire apparait de manière permanente. Comment faire ? J'imagine qu'il faut faire un bout de code avec {if} {/if}, mais je ne sais pas comment faire. Quelqu'un pourrait m'aider. Merci d'avance pour les bonnes volontés. Edited November 22, 2012 by A1TH (see edit history) Link to comment Share on other sites More sharing options...
franckm1000 Posted November 22, 2012 Share Posted November 22, 2012 {if $product.active AND ($product.allow_oosp )} mon texte {/if} Condition, le texte doit se trouver dans une boucle foreach du type: {foreach from=$products item=product} ... {/foreach} Link to comment Share on other sites More sharing options...
A1TH Posted November 22, 2012 Share Posted November 22, 2012 Bonsoir, J'avais déjà essayé quelque chose comme ça {if $product.active AND ($product.allow_oosp )} mon texte {/if} Le problème, c'est que ça s'affichait tout le temps. En insérant cette condition dans {foreach from=$products item=product} ... {/foreach} Ca me satisfait pas non plus car en effet, si aucun produit dans le panier, le texte ne s'affiche pas, mais dès qu'il y a un produit dans le panier (même s'il est dispo), le texte s'affiche. De plus si il y a 2 produits, le texte va s'afficher 2 fois. Ca fait des heures que je cherche en vain. L'idée c'est que le texte ne s'affiche qu'une seule fois seulement dès qu'il y a un produit "orange" dans le panier si non rien. Mais je tourne en rond. Merci d'avance pour un nouveau coup de pouce. Link to comment Share on other sites More sharing options...
franckm1000 Posted November 22, 2012 Share Posted November 22, 2012 (edited) Eh bien simplement un break non ??? Tu mets le code suivant: {foreach from=$products item=product} {if $product.active AND ($product.allow_oosp )} mon texte {break} {/if} {/foreach} Edited November 22, 2012 by franckm1000 (see edit history) Link to comment Share on other sites More sharing options...
A1TH Posted November 23, 2012 Share Posted November 23, 2012 Bonjour Merci Franck pour ton temps et ton aide précieuse, mais malheureusement, l'objectif n'est toujours pas atteint. Je reprécise, que je souhaite que "Mon texte" s'affiche seulement dans le cas où il y a un produit orange dans le panier, si non pas de texte/rien. Je vais exposé ici tous les tests que j'ai fais, afin de comprendre ce qui ne marche pas : A/ Si je mets seulement Mon texte Le texte s'affiche en permanence. B/ si j'ajoute une condition {if} sans {foreach} {if $product.active AND ($product.allow_oosp )} Mon texte {/if} Ca ne change rien, le texte s'affiche, comme dans le cas A/ quelque soit le nbre de produits et quelque soit si le produit est dispo ou non dispo mais commandable dit "orange" C/ si j'ajoute une condition {if} avec {foreach} {foreach from=$products item=product} {if $product.active AND ($product.allow_oosp )} Mon texte {break} {/if} {/foreach} Ca ne change rien, le texte s'affiche qu'une seule fois, comme dans le cas A et B/ D/ si je mets seulement {foreach from=$products item=product} Mon texte {/foreach} Le texte s'affiche autant de fois qu'il y a de produits dans la panier, quelque soit si le produit est dispo ou non dispo mais commandable dit "orange" E/ si je mets {foreach from=$products item=product} Mon texte {break} {/foreach} Le texte s'affiche qu'une seule fois, comme dans le cas A et B/ Conclusion, - La fonction {break} fonctionne très bien dans le cas d'un {foreach} - Mais, il y a un problème avec la fonction {if}, car avec ou sans condition, "Mon texte" s'affichera toujours même s'il n'y a pas de produit orange dans le panier. On doit mal formuler la condition, y a un truc que je ne pige pas. Une idée ? Link to comment Share on other sites More sharing options...
franckm1000 Posted November 23, 2012 Share Posted November 23, 2012 (edited) Je viens de voir mais en fait le fichier dont tu parles n'est pas shopping-cart.tpl mais shopping-cart-product-line.tpl. Mais commences déjà par regarder ce que tu fais. Le fichier shopping-cart-product-line.tpl est inclus dans le fichier shopping-cart.tpl et ce fichier est déjà inclus dans un foreach. Donc partout où tu vas mettre du code dans ce fichier tu seras déjà dans une boucle. Bref, le code que je t'ai donné, mets le dans le fichier shopping-cart.tpl hors de toute boucle foreach et dis moi le résultat. Je sais pas si ça peut marcher, on verra... Edited November 23, 2012 by franckm1000 (see edit history) Link to comment Share on other sites More sharing options...
A1TH Posted November 23, 2012 Share Posted November 23, 2012 Je ne peux que te remercier du temps que tu passes pour m'aider à trouver une solution. C'est très sympa. Je suis confus, tu me dis : Je viens de voir mais en fait le fichier dont tu parles n'est pas shopping-cart.tpl mais shopping-cart-product-line.tpl. Alors que je travaille bien sur shopping-cart.tpl et voici comment j'ai mis le code exrtrait avant jusque apres vers la ligne 285 du shopping-cart.tpl, juste avant {if $voucherAllowed}: {/foreach} </tbody> {/if} </table> </div> {foreach from=$products item=product} {if $product.active AND ($product.allow_oosp )} TEXT TEXT TEXT {break} {/if} {/foreach} {if $voucherAllowed} <div id="cart_voucher" class="table_block"> Et dans ce cas, c'est comme j'ai dis avant, la condition ne fonctionne pas. J'ai toujours le texte dès que j'ai un produit dans le panier, quelque soit la disponibilité du produit. Link to comment Share on other sites More sharing options...
cockpitinferno Posted November 8, 2013 Share Posted November 8, 2013 je déterre ce post car j'essai de mettre un macaron de couleur en fonction d'une case à cocher dans presta. mais je n'y arrive pas. j'ai créé ma checkbox, elle fonctionne et j'ai esasyé d'ajouter ce bout d code dans shopping-cart-product-line.tpl mon champ s'appelle commande. <!--<td class="cart_availability"> {if $product.commande ==0} <img src="{$img_dir}icon/oravailable.gif" alt="{l s='sur commande'}" width="14" height="14"> {else} <img src="{$img_dir}icon/available.gif" alt="{l s='Available'}" width="14" height="14"> {/if} </td>--> j'ai essayé aussi avec {if $product->commande} et j'ai essayé avec online_only (car je m'en sert pour mes produits d'occasion et don j'ai voulu voir si en ajoutant un article d'occase ca marchait) rien n'y fait, pas moyen, soit j'ai 2 rond verts, soit j'ai 2 bleus, pas moyen de différencier un produit en stock et un autre pas en stock. qqun peut il m'aider? merci 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