Jump to content

[PS 1.5.6] Ajout Référence fournisseur dans page produit


Recommended Posts

Bonjour,

 

je suppose que ce sujet a dû déjà être traité mais je ne trouve pourtant aucune solution.

Je suis en version prestashop 1.5

 

je souhaite afficher la référence fournisseur product_supplier_reference dans la page produit.

En modifiant le fichier product.tpl, je n'ai aucun résultat. Voici la modification effectuée

 

{$product->product_supplier_reference|escape:'htmlall':'UTF-8'}

ou

{$product_supplier->product_supplier_reference|escape:'htmlall':'UTF-8'}

 

Certainement parce que ces variables ne sont pas valorisées

 

Je pense qu'il faut surcharger une classe ou un contrôleur mais là je sèche

Quelqu'un peut-il m'aider ?

 

Link to comment
Share on other sites

Voilà où j'en suis.

J'ai surchargé la classe produt en y ajoutant une fonction    public static function

 

getProductSupplierReference($id_product,$id_product_attribute, $id_supplier)

{
// build query
$query = new DbQuery();
$query->select('ps.product_supplier_reference');
$query->from('product_supplier', 'ps');
$query->where('ps.id_product = '.(int)$id_product.'
AND ps.id_product_attribute = '.(int)$id_product_attribute.'
AND ps.id_supplier = '.(int)$id_supplier
);
 
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($query);
    return $row['ps.product_supplier_reference'];
 
Je souhaite maintenant à traver le tpl appelé cette fonction
un peu comme cela
{assign var="productSupplier" value=""} 
{assign var="productSupplier" value=$product->getProductSupplierReference($id_product,$id_product_attribute, $id_supplier)}
 
Mais aucun résultat ne m'est retournée.
Comment déclarer une fonction dans un overrider pour l'appeler dans le tpl ?
 
Link to comment
Share on other sites

Bonjour,

 

Est-ce que tu utilise des déclinaisons sur tes produits ?
Si tu n'en utilise pas, tu peux récupérer cette information de la manière suivante ( via un override de la classe Product )

<?php
class Product extends ProductCore {

/**
* Récupération de la référence fournisseur
* @param int $id_product_attribute : id_attribut_produit
*/
public function getProductSupplierReference($id_product_attribute = 0 ) {
	return ProductSupplier::getProductSupplierReference($this->id, $id_product_attribute, $this->id_supplier);
}

}
?>

Et dans ton tpl sous la forme

{$product->getProductSupplierReference()}
Edited by herve25 (see edit history)
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...