Jump to content

Afficher le stock uniquement en dessous d'un certain nombre


Recommended Posts

Bonjour à tous,

 

Je ne sais pas si ce que j'aimerai faire est possible..

 

J'aimerai afficher la quantité disponible seulement qu'en le stock d'un produit est égale ou inférieur à 10.

 

J'ai désactivé l'option "Afficher les quantités disponibles sur la page produit"  et mis "Afficher les dernières quantités lorsque celles-ci sont inférieures à" à 10.

 

La quantité ne s'affiche pas pour les produits dont le stock et supérieur à 10 comme je le veut mais pur les produits dont le stock est égale ou inférieur à 10, seulement la phrase "Attention: dernières pièces disponibles !" sans la quantité s'affiche.

 

Est-il possible d'afficher également la quantité disponible ? Par exemple : Attention 5 pièces disponibles !

 

Merci à vous

Link to comment
Share on other sites

Oui, il suffit de modifier le product.tpl de votre thème à cet endroit. Recherchez la partie qui doit ressembler à ça

{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->ava
Link to comment
Share on other sites

Bonjour Eolia,

 

Merci pour ta réponse

 

Je suis allé voir dans le product.tpl de mon thème et j'ai trouvé ceci

 

 

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

{if ($display_qties == 1 && !$PS_CATALOG_MODE && $product->available_for_order)}
<p id="pQuantityAvailable" {if $product->quantity <= 0}style="display:none"{/if}>
<span id="quantityAvailable">{$product->quantity|intval}</span>
<span id="quantityAvailableTxt" {if $product->quantity > 1}style="display:none"{/if}>{l s='item in stock'}</span>
<span id="quantityAvailableTxtMultiple" {if $product->quantity == 1}style="display:none"{/if}>{l s='items in stock'}</span>
</p>
{/if}
 
<p class="warning_inline" id="last_quantities" {if ($product->quantity > $last_qties OR $product->quantity <= 0) OR $allow_oosp OR !$product->available_for_order OR $PS_CATALOG_MODE}style="display:none"{/if}>{l s='Warning: Last items in stock !'}</p>
{/if}
 
{if !$product->available_for_order}
<p class="unavailable">{l s='Unavailable product'}</p>
{/if}
<div class="clear"></div>

 

Que dois-je modifié ici ?

 

Merci

Link to comment
Share on other sites

Ca devrait le faire, il vous restera éventuellement les traductions:

<!-- number of item in stock -->
{if ($display_qties == 1 && !$PS_CATALOG_MODE && $product->available_for_order)}
<p id="pQuantityAvailable" {if $product->quantity <= 0}style="display:none"{/if}>
<span id="quantityAvailable">{$product->quantity|intval}</span>
<span id="quantityAvailableTxt" {if $product->quantity > 1}style="display:none"{/if}>{l s='items in stock'}</span>
<span id="quantityAvailableTxtMultiple" {if $product->quantity == 1}style="display:none"{/if}>{l s='item in stock'}</span>
</p>
{/if}
 
<p class="warning_inline" id="last_quantities" {if ($product->quantity > $last_qties OR $product->quantity <= 0) OR $allow_oosp OR !$product->available_for_order OR $PS_CATALOG_MODE}style="display:none"{/if}>{l s='Warning'}: {$product->quantity} {if $product->quantity > 1}{l s='items in stock !'}{else}{l s='item in stock !'}</p>
{/if}
 
{if !$product->available_for_order}
<p class="unavailable">{l s='Unavailable product'}</p>
{/if}
<div class="clear"></div>
Edited by Eolia (see edit history)
Link to comment
Share on other sites

Hum... il manque une balise {/if} fermante, désolé^^

<!-- number of item in stock -->
{if ($display_qties == 1 && !$PS_CATALOG_MODE && $product->available_for_order)}
<p id="pQuantityAvailable" {if $product->quantity <= 0}style="display:none"{/if}>
<span id="quantityAvailable">{$product->quantity|intval}</span>
<span id="quantityAvailableTxt" {if $product->quantity > 1}style="display:none"{/if}>{l s='items in stock'}</span>
<span id="quantityAvailableTxtMultiple" {if $product->quantity == 1}style="display:none"{/if}>{l s='item in stock'}</span>
</p>
{/if}
 
<p class="warning_inline" id="last_quantities" {if ($product->quantity > $last_qties OR $product->quantity <= 0) OR $allow_oosp OR !$product->available_for_order OR $PS_CATALOG_MODE}style="display:none"{/if}>{l s='Warning'}: {$product->quantity} {if $product->quantity > 1}{l s='items in stock !'}{else}{l s='item in stock !'}{/if}</p>
{/if}
 
{if !$product->available_for_order}
<p class="unavailable">{l s='Unavailable product'}</p>
{/if}
<div class="clear"></div>
Link to comment
Share on other sites

  • 3 years later...

Bonjour, j'ai une requête presque similaire à celle exposée ci-dessus car la technique que vous proposez ne fonctionne que pour le produits dont le stock est bloqué (via le refus de commande en cas de rupture de stock). 

Lorsque dans le back office j'active ""Afficher les quantités disponibles sur la page produit", le stock de tous mes produits s'affiche bien. 

Cependant, j'aimerais que la quantité des stocks ne s'affiche que pour les produits dont le stock est compris entre 1 et 30 exemplaires. 

Par exemple, un produit disponible en 10 exemplaires, devrait indiquer: En Stock: 10 exemplaires disponibles". En revanche s'il y avait 31 exemplaires en stock, je voudrais simplement afficher "En Stock". 

Comment dois-je modifier le code de product tpl ? Je suis sous Prestashop 1.6.1.

 

{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}

Merci d'avance pour votre aide

 

Link to comment
Share on other sites

il faut ajouter une condition qui dit que si plus de 10, ne pas afficher le stock

as tu essayé:

                    <span {if $product->quantity > 10} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item'}</span>

a tester bien sûr, sans conviction ;-(

 

Edited by Manu-shop (see edit history)
Link to comment
Share on other sites

59 minutes ago, Manu-shop said:

il faut ajouter une condition qui dit que si plus de 10, ne pas afficher le stock

as tu essayé:

                    <span {if $product->quantity > 10} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item'}</span>

a tester bien sûr, sans conviction ;-(

 

Merci mais quelle est la différence entre ta proposition et la ligne suivante  indiquée déjà dans le code ?

<span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item'}</span>

On indique quantité supérieur à 1 puis quantité supérieure à 10.

10 étant supérieur à 1, est-ce que cela va changer l'affichage? 

Pour que je comprenne, est-ce que tu peux m'expliquer ce qu'affiche les 2 conditions ci-dessous : 

                    <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>
 

Link to comment
Share on other sites

11 minutes ago, Manu-shop said:

quand tu as plusieurs produits, tu met un S à produits

l'un indique sans s et l'autre avec un s

Je me suis mal exprimé.

En fait, est-ce que cette ligne veut dire que s'il y a une quantité supérieure à 1, le nombre d'exemplaire va s'afficher ? 

<span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item'}</span>

Ou bien est-ce que cela indique simplement "En stock" sans préciser le nombre d'exemplaires? 

Link to comment
Share on other sites

On 12/1/2020 at 2:05 PM, Manu-shop said:

il faut ajouter une condition qui dit que si plus de 10, ne pas afficher le stock

as tu essayé:

                    <span {if $product->quantity > 10} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item'}</span>

a tester bien sûr, sans conviction ;-(

 

J'ai essayé cette ligne de code, mais malheureusement cela ne change rien. Ca affiche le nombre de produits en stock même si celui-ci est supérieur à 10... 

Quel serait le bon code pour que le nombre exact de produits en stock ne s'affiche que si le stock est compris entre 1 et 10?

S'il y a moins de 1 produit en stock, il faudrait que cela affiche "Pas de stock"

S'il y a plus de 10 produits en stock, il faudrait que cela affiche "En stock"

S'il y a entre 1 et 10 produits en stock,  il faudrait que cela affiche "Plus que 1... produits en stock"

Merci pour votre aide.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...