Ajouter un nouveau champ sur votre fiche produit

Voici un tutoriel pour vous montrer comment ajouter un champ supplémentaire sur votre fiche produit sous prestashop 1.5.4+

Commencez pas créer le fichier « override/classes/Product.php » et ajoutez-y le code suivant:


<?php

class Product extends ProductCore
{
	public $intro_text;
	
	public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, Context $context = null)
	{
		Product::$definition['fields']['intro_text'] = array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCatalogName', 'required' => true, 'size' => 128);
		parent::__construct($id_product, $full, $id_lang, $id_shop, $context);
	}
}

Repérez ensuite le fichier « admin6148/themes/default/template/controllers/products/informations.tpl », copiez-le puis collez-le dans le dossier « override/controllers/admin/templates/products/ ».
Ouvrez votre fichier et repérez le code suivant:


<tr>
			<td class="col-left">
				{include file="controllers/products/multishop/checkbox.tpl" field="name" type="default" multilang="true"}
				<label>{l s='Name:'}</label>
			</td>
			<td style="padding-bottom:5px;" class="translatable">
			{foreach from=$languages item=language}
				<div class="lang_{$language.id_lang}" style="{if !$language.is_default}display: none;{/if} float: left;">
						<input class="{$class_input_ajax}{if !$product->id}copy2friendlyUrl{/if} updateCurrentText" size="43" type="text" {if !$product->id}disabled="disabled"{/if}
						id="name_{$language.id_lang}" name="name_{$language.id_lang}"
						value="{$product->name[$language.id_lang]|htmlentitiesUTF8|default:''}"/><sup> *</sup>
					<span class="hint" name="help_box">{l s='Invalid characters:'} <>;=#{}<span class="hint-pointer">&nbsp;</span>
					</span>
				</div>
			{/foreach}
			</td>
		</tr>

Ajoutez juste après ce code:


		<tr>
			<td class="col-left">
				<label>{l s='Intro:'}</label>
			</td>
			<td style="padding-bottom:5px;" class="translatable">
			{foreach from=$languages item=language}
				<div class="lang_{$language.id_lang}" style="{if !$language.is_default}display: none;{/if} float: left;">
						<input class="{$class_input_ajax}{if !$product->id}copy2friendlyUrl{/if} updateCurrentText" size="43" type="text" {if !$product->id}disabled="disabled"{/if}
						id="intro_text_{$language.id_lang}" name="intro_text_{$language.id_lang}"
						value="{$product->intro_text[$language.id_lang]|htmlentitiesUTF8|default:''}"/><sup> *</sup>
					<span class="hint" name="help_box">{l s='Invalid characters:'} <>;=#{}<span class="hint-pointer">&nbsp;</span>
					</span>
				</div>
			{/foreach}
			</td>
		</tr>

Enfin pour l’afficher dans votre template utilisez ceci:


{$product->intro_text}

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *