Jump to content

Edit History

Phenomene

Phenomene

Bonjour,

Je souhaiterais ne  pas afficher les quantités disponibles de mes produits, seulement informer mes clients que le produit est en stock.

En cherchant j'ai trouvé deux solutions(ci- dessous). Cela n'a pas fonctionner.

Quelqu'un aurait une idée. Merci

Voici le texte product.tpl de mon thème

{/if}
            {if ($display_qties == 1 && !$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && $product->available_for_order)}

<!-- number of item in stock -->
                <p id="pQuantityAvailable"{if $product->quantity <= 0}style="display: none;"{/if}>
                    <span id="quantityAvailable">{$product->quantity|intval}</span>
                    <span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item'} </span>

                    <span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='Items'} </span>
                </p>
            {/if}
            
            <!-- availability or doesntExist -->
            <p id="availability_statut"{if !$PS_STOCK_MANAGEMENT || ($product->quantity <= 0 && !$product->available_later && $allow_oosp) || ($product->quantity > 0 && !$product->available_now) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
                {*<span id="availability_label">{l s='Availability:'}</span>*}
                <span id="availability_value" class="label{if $product->quantity <= 0 && !$allow_oosp} label-danger{elseif $product->quantity <= 0} label-warning{else} label-success{/if}">{if $product->quantity <= 0}{if $PS_STOCK_MANAGEMENT && $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{elseif $PS_STOCK_MANAGEMENT}{$product->available_now}{/if}</span>
            </p>
            {if $PS_STOCK_MANAGEMENT}
                {if !$product->is_virtual}{hook h="displayProductDeliveryTime" product=$product}{/if}
                <p class="warning_inline" id="last_quantities"{if ($product->quantity > $last_qties || $product->quantity <= 0) || $allow_oosp || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none"{/if} >{l s='Warning: Last items in stock!'}</p>
            {/if}
            <p id="availability_date"{if ($product->quantity > 0) || !$product->available_for_order || $PS_CATALOG_MODE || !isset($product->available_date) || $product->available_date < $smarty.now|date_format:'%Y-%m-%d'} style="display: none;"{/if}>
                <span id="availability_date_label">{l s='Availability date:'}</span>
                <span id="availability_date_value">{if Validate::isDate($product->available_date)}{dateFormat date=$product->available_date full=false}{/if}</span>
            </p>
            <!-- Out of stock hook -->
            <div id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}>
                {$HOOK_PRODUCT_OOS}
            </div>
            {if isset($HOOK_EXTRA_RIGHT) && $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if}
            {if !$content_only}
                <!-- usefull links-->
                <ul id="usefull_link_block" class="clearfix no-print">

Masquer les quantités disponibles à l’aide de Smarty

Cette méthode est donc ma préférée, car elle est la plus fiable. Ce n’est pas parce que visuellement vous masquez un élément que celui-ci n’existe plus, et c’est bien la le souci avec les CSS et le référencement naturel d’un site Prestashop.

Ainsi, nous allons travailler sur le fichier product.tpl, se trouvant à la racine de votre thème. Celui-ci affiche n’importe quel produit, et nous allons donc désactiver une bonne fois pour toutes les quantités affichées pour les produits.

Comme nous l’avons détecté plus haut, product-availability est l’élément à retirer.

Rechercher donc dans le fichier product.tpl ceci : 

id= »product-availability »

Une fois l’élément trouvé, mettez-le en commentaires Smarty comme ceci :

 
1
2
3
4
5
6
7
8
9
10
{*
{if ($display_qties == 1 && !$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && $product->available_for_order)}
    <!-- number of item in stock -->
    <div id="pQuantityAvailable"{if $product->quantity <= 0} style="display: none;"{/if}>
        <span id="quantityAvailable">{$product->quantity|intval}</span>
        <span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item'}</span>
        <span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='Items'}</span>
    </div>
{/if}
*}

Vous noterez les conditions smarty affichées, mais surtout retenez bien le mode opératoire pour retirer du code HTML mais en le conservant dans votre fichier, avec {* pour ouvrir un commentaire, et *} pour le refermer.

Les quantités disponibles sont à présent complètement masquées sur votre site, et même en cherchant à inspecter le code vous ne pourrez les trouver, ce qui demeure bien plus propre et sécurisé.

Notez que c’est à l’intérieur de cette syntaxe que vous pouvez tout simplement avoir des conditions afin de n’afficher les quantités disponibles que si et seulement si celles-ci atteignent un seuil critique, plutôt intéressant !

Alors tu édites le fichier product.tpl, et tu supprime (ou tu mets en commentaire grace à <!-- et --> ) les lignes suivantes

<!-- number of item in stock -->

quantity == 0} style="display:none;"{/if}>
{$product->quantity|intval}
quantity > 1} style="display:none;"{/if} id="quantityAvailableTxt">{l s='item in stock'}
quantity == 1} style="display:none;"{/if} id="quantityAvailableTxtMultiple">{l s='items in stock'}
 



Tu remplaces par 

<!-- number of item in stock 

quantity == 0} style="display:none;"{/if}>
{$product->quantity|intval}
quantity > 1} style="display:none;"{/if} id="quantityAvailableTxt">{l s='item in stock'}
quantity == 1} style="display:none;"{/if} id="quantityAvailableTxtMultiple">{l s='items in stock'}
-->
 



Ensuite pour mettre juste en stock je sais pas j'ai tester des trucs mais ça fonctionne pas.

 

  •  
Phenomene

Phenomene

Bonjour,

Je souhaiterais ne  pas afficher les quantités disponibles de mes produits, seulement informer mes clients que le produit est en stock.

En cherchant j'ai trouvé deux solutions(ci- dessous). Cela n'a pas fonctionner.

Quelqu'un aurait une idée. Merci

Voici le texte product.tpl de mon thème

{/if}
            {if ($display_qties == 1 && !$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && $product->available_for_order)}

<!-- number of item in stock -->
                <p id="pQuantityAvailable"{if $product->quantity <= 0}style="display: none;"{/if}>
                    <span id="quantityAvailable">{$product->quantity|intval}</span>
                    <span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item'} </span>

                    <span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='Items'} </span>
                </p>
            {/if}
            
            <!-- availability or doesntExist -->
            <p id="availability_statut"{if !$PS_STOCK_MANAGEMENT || ($product->quantity <= 0 && !$product->available_later && $allow_oosp) || ($product->quantity > 0 && !$product->available_now) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
                {*<span id="availability_label">{l s='Availability:'}</span>*}
                <span id="availability_value" class="label{if $product->quantity <= 0 && !$allow_oosp} label-danger{elseif $product->quantity <= 0} label-warning{else} label-success{/if}">{if $product->quantity <= 0}{if $PS_STOCK_MANAGEMENT && $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{elseif $PS_STOCK_MANAGEMENT}{$product->available_now}{/if}</span>
            </p>
            {if $PS_STOCK_MANAGEMENT}
                {if !$product->is_virtual}{hook h="displayProductDeliveryTime" product=$product}{/if}
                <p class="warning_inline" id="last_quantities"{if ($product->quantity > $last_qties || $product->quantity <= 0) || $allow_oosp || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none"{/if} >{l s='Warning: Last items in stock!'}</p>
            {/if}
            <p id="availability_date"{if ($product->quantity > 0) || !$product->available_for_order || $PS_CATALOG_MODE || !isset($product->available_date) || $product->available_date < $smarty.now|date_format:'%Y-%m-%d'} style="display: none;"{/if}>
                <span id="availability_date_label">{l s='Availability date:'}</span>
                <span id="availability_date_value">{if Validate::isDate($product->available_date)}{dateFormat date=$product->available_date full=false}{/if}</span>
            </p>
            <!-- Out of stock hook -->
            <div id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}>
                {$HOOK_PRODUCT_OOS}
            </div>
            {if isset($HOOK_EXTRA_RIGHT) && $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if}
            {if !$content_only}
                <!-- usefull links-->
                <ul id="usefull_link_block" class="clearfix no-print">

Masquer les quantités disponibles à l’aide de Smarty

Cette méthode est donc ma préférée, car elle est la plus fiable. Ce n’est pas parce que visuellement vous masquez un élément que celui-ci n’existe plus, et c’est bien la le souci avec les CSS et le référencement naturel d’un site Prestashop.

Ainsi, nous allons travailler sur le fichier product.tpl, se trouvant à la racine de votre thème. Celui-ci affiche n’importe quel produit, et nous allons donc désactiver une bonne fois pour toutes les quantités affichées pour les produits.

Comme nous l’avons détecté plus haut, product-availability est l’élément à retirer.

Rechercher donc dans le fichier product.tpl ceci : 

id= »product-availability »

Une fois l’élément trouvé, mettez-le en commentaires Smarty comme ceci :

1
2
3
4
5
6
7
8
9
10
{*
{if ($display_qties == 1 && !$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && $product->available_for_order)}
    <!-- number of item in stock -->
    <div id="pQuantityAvailable"{if $product->quantity <= 0} style="display: none;"{/if}>
        <span id="quantityAvailable">{$product->quantity|intval}</span>
        <span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item'}</span>
        <span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='Items'}</span>
    </div>
{/if}
*}

Vous noterez les conditions smarty affichées, mais surtout retenez bien le mode opératoire pour retirer du code HTML mais en le conservant dans votre fichier, avec {* pour ouvrir un commentaire, et *} pour le refermer.

Les quantités disponibles sont à présent complètement masquées sur votre site, et même en cherchant à inspecter le code vous ne pourrez les trouver, ce qui demeure bien plus propre et sécurisé.

Notez que c’est à l’intérieur de cette syntaxe que vous pouvez tout simplement avoir des conditions afin de n’afficher les quantités disponibles que si et seulement si celles-ci atteignent un seuil critique, plutôt intéressant !

Alors tu édites le fichier product.tpl, et tu supprime (ou tu mets en commentaire grace à <!-- et --> ) les lignes suivantes

<!-- number of item in stock -->

quantity == 0} style="display:none;"{/if}>
{$product->quantity|intval}
quantity > 1} style="display:none;"{/if} id="quantityAvailableTxt">{l s='item in stock'}
quantity == 1} style="display:none;"{/if} id="quantityAvailableTxtMultiple">{l s='items in stock'}
 



Tu remplaces par 

<!-- number of item in stock 

quantity == 0} style="display:none;"{/if}>
{$product->quantity|intval}
quantity > 1} style="display:none;"{/if} id="quantityAvailableTxt">{l s='item in stock'}
quantity == 1} style="display:none;"{/if} id="quantityAvailableTxtMultiple">{l s='items in stock'}
-->
 



Ensuite pour mettre juste en stock je sais pas j'ai tester des trucs mais ça fonctionne pas.

 

  •  
×
×
  • Create New...