Jump to content

[RESOLU] Caractéristique sur page produit


Recommended Posts

Bonjour à tous,

sur la page produit (product.tpl), j'aimerais afficher "en stock. Expédition sous 48-72h" si il y a plus de 0 articles en stock. Dans le cas contraire (stock = 0) j'aimerais afficher le contenu de la caractéristique "disponibilite" uniquement si elle a été renseignée, ou bien une valeur générique si elle n'a pas été renseignée.

Si elle a été renseignée, j'affiche sa valeur, sinon j'affiche une valeur générique.
Je procède donc comme suit :

{if $product.quantity > 0}
  En stock
{else}
  {foreach $product.features as $feature}	
    {if $feature.name == 'disponibilite'}
      {if $feature.value !== ' '}
        Sur commande. Expédition sous {$feature.value}
      {else}
        Sur commande. Expédition sous 8 semaines.
      {/if}
    {/if}
  {/foreach}
{/if}

Cela fonctionne bien, le problème est que si on a pas ajouté de caractéristique vide dans l'admin de la page produit, cela ne fonctionne pas, étant donné que je test s'il y a une caractéristique nommée "disponibilite".  Je voudrais que le système fonctionne même si j'ajoute d'autres caractéristiques par la suite.

Auriez-vous une idée de comment procéder pour afficher la valeur générique ("Sur commande. Expédition sous 8 semaines.") si une caractéristique "disponibilite" n'a pas été assignée ?

La solution est sans doute très simple mais je travail tellement dur sur mon shop que j'en ai perdu tout recul... Merci d'avance !

 

 

Edited by AurelienS21 (see edit history)
Link to comment
Share on other sites

Salut,

Pourquoi ne pas tout simplement utiliser les options de gestion de stock de Prestashop ?

Dans chaque produit, tu as la possibilité de renseigner un libellé selon l'état du stock ("Libellé si en stock", "Libellé si rupture de stock et précommande autorisée") et dans la section Paramètres de la boutique >> Produits >> Stock des produits, tu peux renseigner des libellés par défaut pour chaque état de stock.

Link to comment
Share on other sites

12 minutes ago, Divine said:

Salut,

Pourquoi ne pas tout simplement utiliser les options de gestion de stock de Prestashop ?

Dans chaque produit, tu as la possibilité de renseigner un libellé selon l'état du stock ("Libellé si en stock", "Libellé si rupture de stock et précommande autorisée") et dans la section Paramètres de la boutique >> Produits >> Stock des produits, tu peux renseigner des libellés par défaut pour chaque état de stock.

Bonjour,

merci pour ta réponse, j'ai oublié de préciser que je ne pouvais pas utiliser cette fonctionnalité native car les articles sont importés via un module depuis un logiciel de gestion de caisse, qui n'a pas de colonne "libellé si ...".

Link to comment
Share on other sites

Alors si tu affiches une valeur générique en fonction de si une caractéristique "disponibilité" a été ajoutée ou non, cela fonctionnera mais le problème c'est que cette valeur générique va également être affichée pour chaque autre caractéristique que tu vas ajouter par la suite puisque cette vérification se fait dans la boucle (le foreach).

Donc la seule solution qui me vient là tout de suite c'est de créer une variable qui va récupérer un tableau de l'ensemble des noms de caractéristique et vérifier en dehors de la boucle que ce tableau ne contient pas la caractéristique "disponibilité" pour afficher la valeur générique. Un truc de ce genre :

{if $product.quantity > 0}
	En stock
{else}
	{assign var=featuresArray value=[]}
	{foreach $product.features as $feature}	
		{if $feature.name == 'disponibilite'}
			Sur commande. Expédition sous {$feature.value}
		{/if}
		{append var=featuresArray value=$feature.name}
	{/foreach}
	{if !in_array('disponibilite', $featuresArray)}
		Sur commande. Expédition sous 8 semaines.
	{/if}
{/if}

 

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