Jump to content

affichage de plusieurs fournisseurs/fabricants sur fiche produit


Recommended Posts

Bonjour,

 

j'ai suivi le topic pour afficher UN fournisseur et UN fabricant sur la fiche produit.

 

Je trouve ça sympa de pouvoir cliquer sur le nom du fournisseur ou du fabricant pour avoir tous les produits de chacun.

Là je vais avoir des produits avec plusieurs fabricants et je voudrais tous les faire apparaitre.

Dans mon cas, les fabricants sont les auteurs et les fournisseurs sont les maisons d'édition.

Donc, quand j'ai plusieurs auteurs, je voudrais tous les faire apparaitre.

 

pour le moment, j'utilise ce code :

<!--pour afficher les auteurs-->
{if isset($product->manufacturer_name)}
<p id="manufacturer">
<label>{l s='Auteur : '} </label>
<a itemprop="brand" itemscope itemtype="http://schema.org/Brand" href="{$link->getManufacturerLink($product_manufacturer->id_manufacturer, $product_manufacturer->link_rewrite)|escape:'html':'UTF-8'}"><span class="editable" itemprop="name" content="{$product->manufacturer_name}">{$product->manufacturer_name|escape:'html':'UTF-8'}</span></a>
</p>
{/if}

<!--pour afficher les maisons d'editions-->
{if isset($product->supplier_name)}
<p id="supplier">
<label>{l s='Editeur: '} </label>
<a itemprop="brand" itemscope itemtype="http://schema.org/Brand" href="{$link->getSupplierLink($product_supplier->id_supplier, $product_supplier->link_rewrite)|escape:'html':'UTF-8'}"><span class="editable" itemprop="name" content="{$product->supplier_name}">{$product->supplier_name|escape:'html':'UTF-8'}</span></a>
</p>
{/if}

j'utilise Prestashop 1.6.1.10

le site est là pour vous donner une idée : https://librairiedalmyre.com

 

Merci d'avance et bonne journée

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

au sens prestashop il n'existe qu'un et qu'un seul fabricant pour un produit. Autant de fournisseur que tu veux, mais un seul fabricant.

Tu devrais plutôt détourner les tags à ton usage Auteur:Amelie Notomb, Editeur:Seuil 

Link to comment
Share on other sites

Okay. Pour les fabricants j'en fais mon deuil.

Mais du coup, si je veux afficher plusieurs fournisseurs est-ce possible ?

Parce que je ne vois pas comment sont associés plusieurs fournisseurs au même produit genre "supplier_name 2"; "supplier_name 3"

Comment faire dans ce cas ?

merci pour les réponses

Link to comment
Share on other sites

Bonjour,

Il n'y a qu'un fournisseur par défaut (table produit), mais sur la table des fournisseurs, il n'y a pas de limite.

 

Sur la fiche tpl produit, il faut ajouter un code permettant d'afficher l'ensemble des fournisseurs associés. ainsi qu'un override du controller.

 

A vérifier, mais dans le genre :

ProductController.php

<?php
class ProductController extends ProductControllerCore
{    public function initContent()
	{
		parent::initContent();
		                foreach (ProductSupplier::getSupplierCollection($this->product->id, true)->getResults() as $productSupplier) {
                   $suppliers[] = new Supplier($productSupplier->id_supplier, $this->context->language->id);
                }
                $this->context->smarty->assign('suppliers' , $suppliers );
  	}
}

et product.tpl

<p id="supplier">
 {if isset($suppliers)}
            {foreach from=$suppliers item='supplier' name='supplier_list'}
                {if {$supplier->id_supplier} !=0}
                    <a href="{$link->getsupplierLink($supplier->id_supplier, $supplier->link_rewrite)|escape:'html':'UTF-8'}" title="{l s='More about '} {$supplier->name}">
                        <img class="img-thumbnail" src="{$img_ps_dir}/su/{$supplier->id_supplier}-thumb_default.jpg" alt="{l s='More about '} {$supplier->name}" />
                    </a>
                {/if}
            {/foreach}
        {/if}
</p>
  • Like 1
Link to comment
Share on other sites

 

Bonjour,

Il n'y a qu'un fournisseur par défaut (table produit), mais sur la table des fournisseurs, il n'y a pas de limite.

 

Sur la fiche tpl produit, il faut ajouter un code permettant d'afficher l'ensemble des fournisseurs associés. ainsi qu'un override du controller.

 

A vérifier, mais dans le genre :

ProductController.php

<?php
class ProductController extends ProductControllerCore
{    public function initContent()
	{
		parent::initContent();
		                foreach (ProductSupplier::getSupplierCollection($this->product->id, true)->getResults() as $productSupplier) {
                   $suppliers[] = new Supplier($productSupplier->id_supplier, $this->context->language->id);
                }
                $this->context->smarty->assign('suppliers' , $suppliers );
  	}
}

et product.tpl

<p id="supplier">
 {if isset($suppliers)}
            {foreach from=$suppliers item='supplier' name='supplier_list'}
                {if {$supplier->id_supplier} !=0}
                    <a href="{$link->getsupplierLink($supplier->id_supplier, $supplier->link_rewrite)|escape:'html':'UTF-8'}" title="{l s='More about '} {$supplier->name}">
                        <img class="img-thumbnail" src="{$img_ps_dir}/su/{$supplier->id_supplier}-thumb_default.jpg" alt="{l s='More about '} {$supplier->name}" />
                    </a>
                {/if}
            {/foreach}
        {/if}
</p>

 

Apparemment cela fonctionne, le thumbnail s'affiche bien, c'est super !

Je suis en train de le modifier pour faire apparaitre les noms des fournisseurs.

J'espère que ça servira pour d'autres.

 

En tout les cas merci et bonne journée !

Link to comment
Share on other sites

  • 11 months later...

bonjour  j'ai suis sous prestashop 1.6 et la méthode pour afficher plusieurs fournisseurs dans la page produit marche nickel, mais je n'arrive pas a faire de même pour la product_list :( avez vous une astuce où un changement dans le foreach a faire ? 

merci de vos reponses :)

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