Jump to content

Comment avoir les $Features dans le shopping cart summary ?


Recommended Posts

Hello, 

 

Tout est dans le titre, j'aimerais pouvoir afficher dans le rappel du panier ( lorsque vous cliqué sur le panier / avec la liste de tout les articles ), la caractéristique de l'articles à savoir la Taille !

 

J'ai déjà pu le faire dans le product-list.tpl , mais pas encore dans le shopping cart

 

J'ai essayer quelques solutions trouver sur le forum, ou ailleurs, mais cela ne fonctionne pas pour la version 1.6.1.2 de PS

 

Quelqu'un à une idée ? il faudrait rajouter quelques choses dans les classes ou controleur de prestashop ?

 

Merci d'avance pour votre aide.

 

Link to comment
Share on other sites

Bonjour, 

 

Merci pour votre réponse, pour ma part ce n'est pas le cas car je n'utilise pas les attributs et valeurs sur prestashop ( ceux-ci sont désactiver ).

Par contre j'utilise les Caractéristiques des produits ( et j'ai donc crée la caractéristique : Tailles ).

 

J'ai pu afficher cette caractéristique dans le product list.tpl avec le code suivant :

													<!--ajout des caractéristiques -->
									
{if isset($product.features)}
    <div class="features" style="font-size:18px;margin-bottom:15px;" >
         {foreach from=$product.features item=feature}
                <div>
                    {$feature.name}: <span>{$feature.value}</span>
                </div>
	     {/foreach}
         
         
    </div>
{/if}
<!--ajout des caractéristiques FIN-->	

Comment faire apparaître cette caractéristique dans le shopping cart comme cela est indiqué sur votre capture d'écran ?

 

Merci d'avance pour votre aide.

Link to comment
Share on other sites

dans le shopping-cart.tpl vous n'avez que l'id des features, donc il faut récupérer les données pour les afficher.

{foreach from=$product.features item=features}


{/foreach}

les données sont ensuite de la forme :

  ["features"]=>
  array(3) {
    [0]=>
    array(3) {
      ["id_feature"]=>
      string(1) "5"
      ["id_product"]=>
      string(1) "3"
      ["id_feature_value"]=>
      string(1) "5"
    }
    [1]=>
    array(3) {
      ["id_feature"]=>
      string(1) "6"
      ["id_product"]=>
      string(1) "3"
      ["id_feature_value"]=>
      string(2) "13"
    }
    [2]=>
    array(3) {
      ["id_feature"]=>
      string(1) "7"
      ["id_product"]=>
      string(1) "3"
      ["id_feature_value"]=>
      string(2) "18"
    }
  }
Link to comment
Share on other sites

Ok d'accord mais comment faire alors pour simplement afficher la valeur de la feature correspondant au produit dans le shopping cart.

 

Je ne comprend pas trop votre réponse, que suis je sensé faire ?

Link to comment
Share on other sites

Bonjour,

Juste pour expliquer comment "Taper" dans les classes depuis Smarty, ça mange pas de pain :)

 

un exemple appliqué dans shopping_cart.tpl shopping-cart-product-line.tpl ... pour afficher une caractéristique

 

{if isset($product.features) && !empty($product.features)}
			{*$product.features|@var_dump*}
			{foreach from=$product.features item=features}
				{*$features.id_feature_value|@var_dump*}
				<!-- en dur pour n'afficher que si on a une caractéristique bien précise, en l'occurence Disponibilité = 13 -->
				{if $features.id_feature==13}
					{assign var=feat value=FeatureValue::getFeatureValueLang($features.id_feature_value)}
					<!-- parcourir si plusieurs langues -->
					{if !empty($feat)}
						{foreach from=$feat item=myfeat}
							{if $myfeat.id_lang='2'}Disponible à partir du {$myfeat.value}{/if}
						{/foreach}
					{/if}
				{/if}
			{/foreach}
		{/if}

En rouge évidemment il faut repérer la classe présente dans le répertoire Classes de Prestashop (ici FeatureValue) et la fonction à utiliser (ici getFeatureValueLang)

 

Walla, ça vaut ce que ça vaut, pas une grande experte en PS, mais fonctionnel.

 

Si quelqu'un a mieux, je prends :)

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

  • 3 weeks later...

Bonjour, 

 

Merci pour votre réponse, j'ai donc pris votre code et je l'ai rajouter sur le fichier shopping-cart-product-line.tpl

 

Cela m'affiche effectivement bien la caractéristique désirez ( j'ai changer l'ID 13 par celle qui m'intéresse ).

Toutefois, cela m'affiche par exemple : 

 

Taille : 38 38 38 38 

 

au lieu de 

 

Taille : 38

 

Comment faire dans ce cas la ?

 

Merci d'avance pour votre aide ;)

Link to comment
Share on other sites

Bonjour, 

 

En faite c'est très étrange, car j'ai 5x la value qui est indiqué 38 , alors que je n'ai que 3 langues d'installer et d'actif.

Comment faire ?

Y a t-il la possibilité d'afficher qu'une seul valeur, celle de la langue par défault ?

 

Merci d'avance, 

 

Edit : Même en désactivant toute les langues, sauf 1, j'ai le même résultat...

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

Meme si je remplace : getFeatureValueLang

 

par 

 

getFeatureValuesWithLang

 

Cela ne fonctionne pas, je ne suis pas expert en code ... je pense que vous l'auriez remarquer... perso je ne vois pas trop quoi faire avec ce que vous avez indiquer... j'ai bien retrouver cette fonction dans le fichier featurevalue.php dans les classes de prestashop, mais que faire avec....

 

Merci d'avance 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...