Tutoriels

Prestashop tips : afficher une seule caractéristique sur la page produit

Prestashop tips : afficher une seule caractéristique sur la page produit

Dans la fiche produit, les caractéristiques sont stockées dans un tableau. Pour afficher une seule caractéristique, il n’est pas possible d’accéder directement à une caractéristique avec son id. Heureusement, Emmanuel a toujours un override sous la main pour répondre à ce besoin.

Dans la fonction initContent de l’override du product controller, créons un nouveau tableau

   /* Feature array by id */
      $features = $this->product->getFrontFeatures($this->context->language->id);
      foreach ($features as $key=>$value) {
        $features_by_key[$value['id_feature']]['name'] = $value['name'];
        $features_by_key[$value['id_feature']]['value'] = $value['value'];
      }

puis on l’assigne :

$this->context->smarty->assign(array(
				'stock_management' => Configuration::get('PS_STOCK_MANAGEMENT'),
				'customizationFields' => ($this->product->customizable) ? $this->product->getCustomizationFields($this->context->language->id) : false,
				'accessories' => $this->product->getAccessories($this->context->language->id),
				'return_link' => $return_link,
				'product' => $this->product,
				'product_manufacturer' => $product_manufacturer,
				'token' => Tools::getToken(false),
				'features' => $features,
        'features_by_key' => $features_by_key,

Dans le product.tpl, pour afficher la caractéristque avec l’id 3 :

{if isset($features_by_key.3.value) & $features_by_key.3.value}
{$features_by_key.3.name} : {$features_by_key.3.value}
{/if}

Vous pouvez télécharger l’override ici et le placer dans /override/controllers/front/ de votre boutique Prestashop