Margaux M Posted March 30, 2018 Share Posted March 30, 2018 Bonjour, Je suis à la recherche d'une solution pour griser les images dans la product_list des produits qui sont en rupture de stock. CF pièce jointe. J'ai essayé de "tricher" en modifiant mon étiquette indisponible, la faire grise et de la taille de l'image et changer l'opacité afin de "désaturer " les couleurs de la photo du produit, mais du coup je ne peux plus cliquer sur l'image pour accéder à la fiche produit! Votre aide est la bienvenue! D'avance merci! Link to comment Share on other sites More sharing options...
Eolia Posted March 30, 2018 Share Posted March 30, 2018 ajoutez une classe à l'image dans le tpl si le stock est <= 0 et en css ajoutez une règle img.nom_de_votre_classe {opacity: 0.8;} Link to comment Share on other sites More sharing options...
Margaux M Posted March 30, 2018 Author Share Posted March 30, 2018 (edited) Merci de votre réponse! Je rencontre néanmoins un problème (de taille!) : dans le product_list.tpl j'ai rien qui indique l'image, je trouve l'img class intéressante dans un autre ficher, product-section-cs.tpl, en revanche je comprends pas bien comment le modifier. J'ai essayé ça {if ($product.allow_oosp || $product.quantity > 0)} <span class="{if $product.quantity <= 0 && !$product.allow_oosp}out-of-stock{else}available-now{/if}"> <link itemprop="availability" href="http://schema.org/InStock" /> {if $product.quantity <= 0} {if $product.allow_oosp} {if isset($product.available_later) && $product.available_later}{$product.available_later} {else} {/if} {else} {l s='Out of stock'} {/if} {else} {if isset($product.available_now) && $product.available_now}{$product.available_now} {else} {/if} {/if} </span> {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}{else} <img class="outstock" src="{$link->getImageLink($product.link_rewrite, $product.id_image, $image_size)|escape:'html':'UTF-8'}" alt="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}" {/if} itemprop="image" />{if count($imageAll)>1} {foreach from=$imageAll item=imaget name=images} {if $imaget.cover!=1} {assign var=img_second_id value ="`$product.id_product`-`$imaget.id_image`"} {break} {/if} {/foreach} <img class="img-hover" src="{$link->getImageLink($product.link_rewrite,$img_second_id, $image_size)}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" />{/if}{/if} En espérant que si stock <= 0 alors ça modifie l'img class de base en "outstock", mais il n'en est rien! J'ai du foirer quelque part! Edit: Alors en fait, ça marche presque! J'ai deux fois l'image, dont une avec la bonne classe! Edited March 30, 2018 by Margaux M (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted March 31, 2018 Share Posted March 31, 2018 bah c'est normal vous avez mis les 2 images dans le même bloc {else} donc votre code dit: c'est soit les 2 soit aucune et le plus simple est de laisser une seule image et de mettre la condition dans le bloc image: <img src="chemin_de_l_image" {if $product_quantity <= 0}class="outstock"{/if} alt="toto" title="tata" /> Link to comment Share on other sites More sharing options...
Margaux M Posted March 31, 2018 Author Share Posted March 31, 2018 Merci pour l'explication et la nouvelle ligne de code! J'avoue avoir un peu de mal encore! <img src="{$link->getImageLink($product.link_rewrite, $product.id_image, $image_size)|escape:'html':'UTF-8'}" class="replace-2x img-responsive" {if $product_quantity <= 0} class="outstock"{/if} alt="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} itemprop="image" /> {if count($imageAll)>1} {foreach from=$imageAll item=imaget name=images} {if $imaget.cover!=1} {assign var=img_second_id value ="`$product.id_product`-`$imaget.id_image`"} {break} {/if} {/foreach} <img class="img-hover" src="{$link->getImageLink($product.link_rewrite,$img_second_id, $image_size)}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" /> {/if} Quand je fais ça, ça ne change pas les produits en rupture de stock. J'ai essayé de mettre {if $product_quantity <= 0}class="outstock"{/if} en premier, dans ce cas là toutes mes images sont grisées! Link to comment Share on other sites More sharing options...
Eolia Posted March 31, 2018 Share Posted March 31, 2018 Oui mais non, je vous ai donné un exemple, vous devez l'adapter à votre cas car vous avez déjà une classe par défaut: class="replace-2x img-responsive" Donc votre code devient: class="replace-2x img-responsive{if $product_quantity <= 0} outstock{/if}" On met juste le nom de la classe en condition supplémentaire Link to comment Share on other sites More sharing options...
Margaux M Posted March 31, 2018 Author Share Posted March 31, 2018 D'accord! Je suis désolée, il semblerait que la condition <= 0 ne soit pas prise en compte, maintenant j'ai les 3 classes dans mes img, avec la outstock qui prend le dessus (elles sont toute grisées) Link to comment Share on other sites More sharing options...
Eolia Posted March 31, 2018 Share Posted March 31, 2018 effectivement c'est : $product.quantity dans votre cas, mais si on est sur un produit avec déclinaisons, il faudra modifier également le js car £product.quantity concerne la quanté totale du produit (somme des quantités des déclinaisons) Link to comment Share on other sites More sharing options...
Margaux M Posted March 31, 2018 Author Share Posted March 31, 2018 Effectivement, comme prévu ça marche mais ça affecte aussi les produits avec des déclinaisons! Je dois regarder du côté de product.js? Mille mercis pour l'aide! Link to comment Share on other sites More sharing options...
Eolia Posted March 31, 2018 Share Posted March 31, 2018 il faut faire la même chose en js au moment de la génération des images Dans ce cas, dans le tpl il est préférable d'utiliser le paramètre global: {if (isset($product.quantity_all_versions) && $product.quantity_all_versions <= 0) || $product.quantity <= 0} Ce qui ne grisera pas l'image principale si au moins une décli est en stock. Dans le js, au moment du changement de combinaison il faut, lors de la vérification de la dispo (regardez la fonction qui modifie le texte du "En stock"), ajouter la classe à l'image de cette décli Link to comment Share on other sites More sharing options...
Margaux M Posted March 31, 2018 Author Share Posted March 31, 2018 Là j'avoue ne plus suivre Link to comment Share on other sites More sharing options...
Margaux M Posted April 2, 2018 Author Share Posted April 2, 2018 Bonjour! Est-il possible d'avoir un poil plus d'explication pour terminer la modification? Dans quel fichier .js je dois regarder? J'ai pas compris l'histoire de changement de combinaison et l'ajout de la classe à l'image de la déclinaison! Merci et encore désolée d'avoir autant de difficultés! Link to comment Share on other sites More sharing options...
Eolia Posted April 2, 2018 Share Posted April 2, 2018 Ca ne va pas être simple si vous ne maitrisez pas le code... Les déclinaisons sont toutes chargées dans un tableau javascript en front office. Lors du clic sur les déclis, le code javascript adapte l'affichage (image, prix, stock, etc...) suivant les éléments contenus dans ce tableau. Il faut donc se greffer sur ce code pour, suivant le stock dispo, ajouter ou pas la classe qui grise l'image. Cela se passe dans le fichier product.js de votre thème. Dans la fonction fonction findCombination() qui récupère les propriétés de la combinaison en cours, vous trouverez l'appel à displayImage(). Link to comment Share on other sites More sharing options...
Margaux M Posted April 2, 2018 Author Share Posted April 2, 2018 On est d'accord que c'est bien pour griser l'image uniquement sur la page product list? Concernant l'appel en question, j'imagine que c'est celui là // search the combinations' case of attributes and update displaying of availability, prices, ecotax, and image function findCombination() //show the large image in relation to the selected combination if (combinations[combination]['image'] && combinations[combination]['image'] != -1) displayImage($('#thumb_' + combinations[combination]['image']).parent()); Link to comment Share on other sites More sharing options...
Eolia Posted April 2, 2018 Share Posted April 2, 2018 Ah ben non je parlais de la page produit (product.tpl) Pour la page product-list.tpl (catégories, home etc...) c'est différent car les images de déclinaisons ne sont pas affichées, mais uniquement l'image de couverture Link to comment Share on other sites More sharing options...
Margaux M Posted April 2, 2018 Author Share Posted April 2, 2018 Ah voilà! Je ne souhaite pas griser les images dans la page produit, j'y vois pas spécialement d'intérêt, alors que sur la product list ça permet d'un coup d'oeil de voir qu'un produit est en rupture. Mais du coup, ce que vous disiez concernant le fait que si une déclinaison est à 0 l'image serait grisée est vrai, du coup je dois modifier quoi pour que l'image ne se grise pas lors qu'au moins une déclinaison est en stock? J'ai essayé de voir si il était possible de récupérer le code existant pour l'étiquette "out of stock", qui elle marche bien, mais j'ai pas noté de différence par rapport au code global que vous m'aviez indiqué... En tout cas merci encore de votre patience! Link to comment Share on other sites More sharing options...
Eolia Posted April 2, 2018 Share Posted April 2, 2018 Bah je vous ai déjà donné ce code... class="replace-2x img-responsive{if (isset($product.quantity_all_versions) && $product.quantity_all_versions <= 0) || $product.quantity <= 0} outstock{/if}" Link to comment Share on other sites More sharing options...
Margaux M Posted April 2, 2018 Author Share Posted April 2, 2018 Oui, et ça marche impeccable tant qu'il n'y a pas de déclinaisons. En présence de déclinaisons, si l'une d'elle est à 0, l'image est grisée, au lieu de rester en couleur et passer en gris lorsque toutes les déclinaisons sont à 0. Je colle le code si jamais c'est un problème là dedans <img src="{$link->getImageLink($product.link_rewrite, $product.id_image, $image_size)|escape:'html':'UTF-8'}" class="replace-2x img-responsive{if (isset($product.quantity_all_versions) && $product.quantity_all_versions <= 0) || $product.quantity <= 0} outstock{/if}" alt="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} itemprop="image" /> {if count($imageAll)>1} {foreach from=$imageAll item=imaget name=images} {if $imaget.cover!=1} {assign var=img_second_id value ="`$product.id_product`-`$imaget.id_image`"} {break} {/if} {/foreach} <img class="img-hover" src="{$link->getImageLink($product.link_rewrite,$img_second_id, $image_size)}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" /> {/if} Link to comment Share on other sites More sharing options...
Eolia Posted April 2, 2018 Share Posted April 2, 2018 (edited) ok alors remplacez le début par ça: class="replace-2x img-responsive{if (isset($product.quantity_all_versions) && $product.quantity_all_versions <= 0)} outstock{else}{if $product.quantity <= 0} outstock{/if}{/if}" Edited April 3, 2018 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
Margaux M Posted April 3, 2018 Author Share Posted April 3, 2018 Merci, j'ai remplacé mais j'ai une erreur lorsque je rafraîchis la page! Quote Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "/home/yellowflhd/www/themes/ps_appliance/product-section-cs.tpl" on line 41 "<img src="{$link->getImageLink($product.link_rewrite, $product.id_image, $image_size)|escape:'html':'UTF-8'}" class="replace-2x img-responsive{if (isset($product.quantity_all_versions) && $product.quantity_all_versions <= 0) outstock {else}{if $product.quantity <= 0} outstock{/if}{/if}" alt="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} itemprop="image" />" unexpected closing tag <-- thrown in /home/yellowflhd/www/tools/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 41 Link to comment Share on other sites More sharing options...
Eolia Posted April 3, 2018 Share Posted April 3, 2018 oui il manque une accolade fermante ici <= 0)} outstock Link to comment Share on other sites More sharing options...
Margaux M Posted April 3, 2018 Author Share Posted April 3, 2018 En effet! Par contre, l'image est toujours grisée même si des déclinaisons sont encore en stock Link to comment Share on other sites More sharing options...
Eolia Posted April 3, 2018 Share Posted April 3, 2018 Vous êtes sous quelle version Prestashop ? Link to comment Share on other sites More sharing options...
Margaux M Posted April 3, 2018 Author Share Posted April 3, 2018 1.6.1.4 Link to comment Share on other sites More sharing options...
Eolia Posted April 3, 2018 Share Posted April 3, 2018 Bah vous devez avoir un override ou autre chose qui fiche le bazar car ces variables sont ok sous Presta 1.6 normalement Link to comment Share on other sites More sharing options...
Margaux M Posted April 3, 2018 Author Share Posted April 3, 2018 Si il y a un override c'est dans le même fichier? Je le colle ici si jamais c'est le cas {* * 2007-2014 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <contact@prestashop.com> * @copyright 2007-2014 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} {if !isset($image_size)} {assign var=image_size value='home_default'} {/if} <section class="cs-product" itemscope itemtype="http://schema.org/Product"> <div class="cs-left-product"> {$imageAll=Image::getImages(Context::getContext()->language->id,$product.id_product)} <a class="product_img_link{if count($imageAll)<=1} only-image{/if}" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="url"> <img src="{$link->getImageLink($product.link_rewrite, $product.id_image, $image_size)|escape:'html':'UTF-8'}" class="replace-2x img-responsive{if (isset($product.quantity_all_versions) && $product.quantity_all_versions <= 0)} outstock{else}{if $product.quantity <= 0} outstock{/if}{/if}" alt="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} itemprop="image" /> {if count($imageAll)>1} {foreach from=$imageAll item=imaget name=images} {if $imaget.cover!=1} {assign var=img_second_id value ="`$product.id_product`-`$imaget.id_image`"} {break} {/if} {/foreach} <img class="img-hover" src="{$link->getImageLink($product.link_rewrite,$img_second_id, $image_size)}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" /> {/if} </a> <div class="new-sale-box"> {if isset($product.new) && $product.new == 1} <a class="new-box" href="{$product.link|escape:'html':'UTF-8'}"> <span class="new-label">{l s='New'}</span> </a> {/if} {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE} <a class="sale-box" href="{$product.link|escape:'html':'UTF-8'}"> <span class="sale-label">{l s='Sale!'}</span> </a> {/if} </div> <div class="button-container"> {if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE} {if ($product.allow_oosp || $product.quantity > 0)} {if isset($static_token)} <a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, "add=1&id_product={$product.id_product|intval}&token={$static_token}", false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}"> <span>{l s='Add to cart'}</span> </a> {else} <a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, 'add=1&id_product={$product.id_product|intval}', false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}"> <span>{l s='Add to cart'}</span> </a> {/if} {else} <span class="button ajax_add_to_cart_button btn btn-default disabled"> <span>{l s='Out of stock'}</span> </span> {/if} {/if} <a itemprop="url" class="button lnk_view btn btn-default" href="{$product.link|escape:'html':'UTF-8'}" title="{l s='View'}"> <span>{l s='More'}</span> </a> <div class="functional-buttons clearfix"> {hook h='displayProductListFunctionalButtons' product=$product} {if isset($comparator_max_item) && $comparator_max_item} <div class="compare"> <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Add to Compare'}" class="add_to_compare" href="{$product.link|escape:'html':'UTF-8'}" data-id-product="{$product.id_product}">{l s='Add to Compare'}</a> </div> {/if} {if isset($quick_view) && $quick_view} <div class="quick-view-wrapper-mobile"> <a class="quick-view-mobile" href="{$product.link|escape:'html':'UTF-8'}" rel="{$product.link|escape:'html':'UTF-8'}"> <i class="icon-eye-open"></i> </a> </div> <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Quick view'}" class="quick-view" href="{$product.link|escape:'html':'UTF-8'}" rel="{$product.link|escape:'html':'UTF-8'}"> <span>{l s='Quick view'}</span> </a> {/if} </div> </div> </div> <div class="cs-right-product"> {if isset($product.category_default)}<h6 class="category-name">{$product.category_default|truncate:30:'...'|escape:'html':'UTF-8'}</h6>{/if} <h5 itemprop="manufacturer"> {if isset($product.pack_quantity) && $product.pack_quantity}{$product.pack_quantity|intval|cat:' x '}{/if} <!--Product list catalogue Manufacturer--> <a class="product-manufacturer" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.manufacturer_name|escape:'html':'UTF-8'}" > {$product.manufacturer_name|escape:'html':'UTF-8'} </a> </h5> <p class="product-name" itemprop="name"> <!--Product list catalogue Product name--> <a class="product-name" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" > {$product.name|truncate:70:'...'|escape:'html':'UTF-8'} </p> {if $page_name != 'product'} {hook h='displayProductListReviews' product=$product} {/if} <p class="product-desc" itemprop="description"> {$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'} </p> {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} <div itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="content_price"> {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)} <span itemprop="price" class="price product-price"> {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if} </span> <meta itemprop="priceCurrency" content="{$currency->iso_code}" /> {if isset($product.specific_prices) && $product.specific_prices && isset($product.specific_prices.reduction) && $product.specific_prices.reduction > 0} {hook h="displayProductPriceBlock" product=$product type="old_price"} <span class="old-price product-price"> {displayWtPrice p=$product.price_without_reduction} </span> {hook h="displayProductPriceBlock" id_product=$product.id_product type="old_price"} {if $product.specific_prices.reduction_type == 'percentage'} <span class="price-percent-reduction">-{$product.specific_prices.reduction * 100}%</span> {/if} {/if} {hook h="displayProductPriceBlock" product=$product type="price"} {hook h="displayProductPriceBlock" product=$product type="unit_price"} {/if} </div> {/if} <div class="button-container"> {if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE} {if ($product.allow_oosp || $product.quantity > 0)} {if isset($static_token)} <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Add to cart'}" class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, "add=1&id_product={$product.id_product|intval}&token={$static_token}", false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}"> <span>{l s='Add to cart'}</span> </a> {else} <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Add to cart'}" class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, 'add=1&id_product={$product.id_product|intval}', false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}"> <span>{l s='Add to cart'}</span> </a> {/if} {else} <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Out of stock'}"> <span class="button ajax_add_to_cart_button btn btn-default disabled"> <span>{l s='Out of stock'}</span> </span> </a> {/if} {/if} <a itemprop="url" class="button lnk_view btn btn-default" href="{$product.link|escape:'html':'UTF-8'}" title="{l s='View'}"> <span>{l s='More'}</span> </a> <div class="functional-buttons clearfix"> {hook h='displayProductListFunctionalButtons' product=$product} {if isset($comparator_max_item) && $comparator_max_item} <div class="compare"> <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Add to Compare'}" class="add_to_compare" href="{$product.link|escape:'html':'UTF-8'}" data-id-product="{$product.id_product}">{l s='Add to Compare'}</a> </div> {/if} {if isset($quick_view) && $quick_view} <div class="quick-view-wrapper-mobile"> <a class="quick-view-mobile" href="{$product.link|escape:'html':'UTF-8'}" rel="{$product.link|escape:'html':'UTF-8'}"> <i class="icon-eye-open"></i> </a> </div> <a data-toggle="tooltip" data-placement="top" data-original-title="{l s='Quick view'}" class="quick-view" href="{$product.link|escape:'html':'UTF-8'}" rel="{$product.link|escape:'html':'UTF-8'}"> <span>{l s='Quick view'}</span> </a> {/if} </div> </div> {if isset($product.color_list)} <div class="color-list-container">{$product.color_list}</div> {/if} <div class="product-flags"> {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} {if isset($product.online_only) && $product.online_only} <span class="online_only">{l s='Online only'}</span> {/if} {/if} {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE} {elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE} <span class="discount">{l s='Reduced price!'}</span> {/if} </div> {if (!$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)} <span itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="availability"> {if ($product.allow_oosp || $product.quantity > 0)} <span class="{if $product.quantity <= 0 && !$product.allow_oosp}out-of-stock{else}available-now{/if}"> <link itemprop="availability" href="http://schema.org/InStock" />{if $product.quantity <= 0}{if $product.allow_oosp}{if isset($product.available_later) && $product.available_later}{$product.available_later}{else}{l s='In Stock'}{/if}{else}{l s='Out of stock'}{/if}{else}{if isset($product.available_now) && $product.available_now}{$product.available_now}{else}{l s='In Stock'}{/if}{/if} </span> {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)} <span class="available-dif"> <link itemprop="availability" href="http://schema.org/LimitedAvailability" />{l s='Product available with different options'} </span> {else} <span class="out-of-stock"> <link itemprop="availability" href="http://schema.org/OutOfStock" />{l s='Out of stock'} </span> {/if} </span> {/if} {/if} {if isset($cs_id)} {assign var=temp value=$cs_id} {else} {assign var=temp value='product_list'} {/if} {if !isset($count_down)} {hook h='displayCountDownProduct' product=$product index1='block' index2=$temp} {/if} </div> </section> Link to comment Share on other sites More sharing options...
Eolia Posted April 3, 2018 Share Posted April 3, 2018 Non, un override éventuel de product.php ou ProductController.php dans le répertoire /overrides Link to comment Share on other sites More sharing options...
Margaux M Posted April 3, 2018 Author Share Posted April 3, 2018 J'ai bien un fichier ProductController.php dans /override/controllers/front/ et Product.php dans /override/classes/ J'ai essayé de les renommer en .phpold ainsi que class_index.php dans /cache/ mais sans succès, c'est à s'arracher les cheveux! Link to comment Share on other sites More sharing options...
Eolia Posted April 3, 2018 Share Posted April 3, 2018 ces 2 variables doivent retourner la quantité totale du produit avec ses déclis. Si votre image est grisée c'est que le chiffre des quantités est erroné... essayez d'afficher juste leur contenu en ajoutant dans le tpl cette ligne: Quantité totale déclis = {$product.quantity_all_versions} Quantités produit = {$product.quantity} Et dites-moi ce qui s'affiche Link to comment Share on other sites More sharing options...
Margaux M Posted April 3, 2018 Author Share Posted April 3, 2018 Apparemment les overrides ont été créé par ce module "groupinc" (Module Augmentation/Baisse de prix par groupe, catégorie...), que je n'utilise plus, donc je l'ai supprimé... La date des fichiers overrides a bien changé, j'ai supprimé le class_index.php, mais toujours pas mieux! Link to comment Share on other sites More sharing options...
Margaux M Posted April 3, 2018 Author Share Posted April 3, 2018 3 minutes ago, Eolia said: ces 2 variables doivent retourner la quantité totale du produit avec ses déclis. Si votre image est grisée c'est que le chiffre des quantités est erroné... essayez d'afficher juste leur contenu en ajoutant dans le tpl cette ligne: Quantité totale déclis = {$product.quantity_all_versions} Quantités produit = {$product.quantity} Et dites-moi ce qui s'affiche Pour un produit OK (stock 0 sur toutes les déclinaisons) : Quantité totale déclis = 0 Quantités produit = 0 Pour un produit grisé malgré le fait que des déclinaisons soient en stock : Quantité totale déclis = 5 Quantités produit = 0 Link to comment Share on other sites More sharing options...
Margaux M Posted April 3, 2018 Author Share Posted April 3, 2018 (edited) Je viens de remarquer quelque chose et j'ai fait un essai, si ça peut donner une piste. Lorsque la déclinaison par défaut est à 0, l'image est grisée même si d'autre déclinaisons sont en stock. Si je change la déclinaison par défaut par une déclinaison avec du stock, l'affichage est correcte! Edited April 3, 2018 by Margaux M (see edit history) Link to comment Share on other sites More sharing options...
Margaux M Posted April 4, 2018 Author Share Posted April 4, 2018 C'est pas un bon indice? Link to comment Share on other sites More sharing options...
Eolia Posted April 4, 2018 Share Posted April 4, 2018 Ok... Dernière chance^^ class="replace-2x img-responsive{if isset($product.quantity_all_versions)}{if $product.quantity_all_versions <= 0} outstock{/if}{else}{if $product.quantity <= 0} outstock{/if}{/if}" 1 Link to comment Share on other sites More sharing options...
Margaux M Posted April 5, 2018 Author Share Posted April 5, 2018 BINGO! Ça tenait pas à grand chose! Mille mercis! Link to comment Share on other sites More sharing options...
Mathieu J Posted November 5, 2019 Share Posted November 5, 2019 Bonjour, Je souhaite faire la même chose pour mon site, je suis actuellement sur prestashop 1.7.6.1. Pensez-vous que je puisse faire les même manipulations afin d'obtenir le résultat? Merci par avance. Link to comment Share on other sites More sharing options...
Marvin Lamart Posted November 5, 2019 Share Posted November 5, 2019 Bonsoir, Oui, la logique est toujours la même. Vous créer une classe CSS pour baisser l'opacité et vous passez cette classe à votre balise img dépendant de si vous avez du stock ou non. Bonne soirée, Marvin 1 Link to comment Share on other sites More sharing options...
Mathieu J Posted November 5, 2019 Share Posted November 5, 2019 Merci, j’espère m’en sortir. Bonne soirée Link to comment Share on other sites More sharing options...
limitedshop Posted April 12, 2020 Share Posted April 12, 2020 On 11/5/2019 at 5:00 PM, Mathieu J said: Bonjour, Je souhaite faire la même chose pour mon site, je suis actuellement sur prestashop 1.7.6.1. Pensez-vous que je puisse faire les même manipulations afin d'obtenir le résultat? Merci par avance. Bonjour, Je cherche aussi à réaliser la même chose sur 1.7 Avez-vous trouvé une solution ? Merci d'avance et bonne journée Link to comment Share on other sites More sharing options...
Mediacom87 Posted April 12, 2020 Share Posted April 12, 2020 il y a 33 minutes, limitedshop a dit : Je cherche aussi à réaliser la même chose sur 1.7 Avez-vous trouvé une solution ? Le 05/11/2019 à 10:36 PM, Marvin Lamart a dit : Oui, la logique est toujours la même. Vous créer une classe CSS pour baisser l'opacité et vous passez cette classe à votre balise img dépendant de si vous avez du stock ou non. 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