RSS
 

Vignette de promotions

27 juin

Cette article reprend le tutoriel très complet de jguiss que vous trouverez ici : http://www.jguiss.com/2009/06/customiser-la-liste-des-produits-sur-magento/

Pour aller plus loin, on peut insérer dans cette vignette la valeur en pourcentage de la promotion. Vous trouverez le code pour y parvenir ici : http://internet-pau.com/magento/2010/06/calcul-automatique-des-promotions-en-pourcentage/

1- Créer un attribut

<?php /* AFFICHAGE DE LA VIGNETTE PROMO */
$vignette = $_product->getAttributeText('etiquette');
if (!empty($vignette)) { ?>          // si l'attribut vignette est renseigné, on affiche le bloc vignette
<div>      // on ajoute devant la class de style list (pour l'affichage dans list.phtml) et view pour view.phtml, car la class .-10% n'est pas valide contrairement à .list10
<?php if ($vignette != 'promotion' && $vignette != 'nouveaute' && $vignette != 'topvente') { ?> // si l'attribut de vignette est différent de promotion, nouveauté et topvente, alors on affiche le montant (10,11...)
-<?php echo $vignette; ?>%          // on affiche la valeur de la promo
<?php } ?>
</div>
<?php } ?>

Dans l’admin Catalogue > Attributs > Gérer les attributs > Nouvel attribut
Créer attribut « etiquette » labels : « promotion, topvente, nouveaute,10,15,20… »
Définir les groupes d’attribut avec le nouvel attribut « etiquette »

2- Actualiser le Layout de chaque catégorie pour y insérer l’étiquette
Layout catalog : rechercher « product-list » et ajouter <action method=’addAttribute’><attribute>etiquette</attribute></action>
Ou bien, dans le XML de mise à jour d’agencement, section CMS, dans l’admin, ajouter :

<reference name='content'>
<block type='catalog/product_list' name='product_list'>
<action method='addAttribute'><attribute>etiquette</attribute></action> </block> </reference>

/app/design/frontend/default/blue/template/catalog/product/list.phtml
/app/design/frontend/default/blue/template/catalog/product/view.phtml
/app/design/frontend/default/blue/template/catalog/product/sales.phtml
/app/design/frontend/default/blue/template/catalog/product/new.phtml  … ajouter :

<div class="<?php echo $_product->getAttributeText('etiquette')?>"></div>

Si on souhaite afficher le montant de la promo dans la vignette:

<?php /* AFFICHAGE DE LA VIGNETTE PROMO */
$vignette = $_product->getAttributeText('etiquette');
if (!empty($vignette)) { ?>          // si l'attribut vignette est renseigné, on affiche le bloc vignette
<div>      // on ajoute devant la class de style list (pour l'affichage dans list.phtml) et view pour view.phtml, car la class .-10% n'est pas valide contrairement à .list10
<?php if ($vignette != 'promotion' && $vignette != 'nouveaute' && $vignette != 'topvente') { ?> // si l'attribut de vignette est différent de promotion, nouveauté et topvente, alors on affiche le montant (10,11...)
-<?php echo $vignette; ?>%          // on affiche la valeur de la promo
<?php } ?>
</div>
<?php } ?>

3- Modifier le fichier css style.css … ajouter :

/*  Etiquette de promo...  */
.item { position:relative; }

.topvente, .promotion, .nouveaute, .dix, .quinze, .vingt {
 position:absolute;
 float:right;
 display:inline;
 height:50px;
 width:50px;
}

.topvente { background:transparent url(../images/topvente.png) no-repeat scroll 0 0; }
.promotion { background:transparent url(../images/promotion.png) no-repeat scroll 0 0; }
.nouveaute { background:transparent url(../images/nouveaute.png) no-repeat scroll 0 0; }
.dix { background:transparent url(../images/dix.png) no-repeat scroll 0 0; }
.quinze { background:transparent url(../images/lavillauroy/quinze.png) no-repeat scroll 0 0; }
.vingt { background:transparent url(../images/vingt.png) no-repeat scroll 0 0; }

Si on souhaite afficher le montant de la promo dans la vignette:

/*  Etiquette de promo...  */
.item { position:relative; }

.viewtopvente, .viewpromotion, .viewnouveaute  {
 position:absolute;
 height:50px;
 width:50px;
 right:0;
 top:0;
 text-align:center;
 font:bold 14px/44px Arial, Helvetica, sans-serif;
 color:#FFF;
}
.listtopvente, .listpromotion, .listnouveaute {
 float:right;
 height:50px;
 width:50px;
 text-align:center;
 font:bold 14px/44px Arial, Helvetica, sans-serif;
 color:#FFF;
}

.viewtopvente, .listtopvente { background:transparent url(../images/topvente.png) no-repeat scroll 0 0; }
.viewpromotion, .listpromotion { background:transparent url(../images/promotion.png) no-repeat scroll 0 0; }
.viewnouveaute, .listnouveaute { background:transparent url(../images/nouveaute.png) no-repeat scroll 0 0; }
 
8 commentaires

Classé dans Magento

 

Tags : , ,

Réagissez

 

 
  1. Silv3r

    17 juillet 2010 à 15 h 55 min

    Bo,jour ! Merci pour cet exellent tuto :) Avant de le tester, pourriez-vous me dire si celui-ci fonctionne avec Magento 1.4.1.0 ?

     
  2. Adeline

    17 juillet 2010 à 15 h 57 min

    Oui cela fonctionne parfaitement. :)

     
  3. Alex

    2 septembre 2010 à 19 h 10 min

    Pouvez vous m’indiquer ou placer la div dans:

    /app/design/frontend/default/blue/template/catalog/product/list.phtml
    /app/design/frontend/default/blue/template/catalog/product/view.phtml
    /app/design/frontend/default/blue/template/catalog/product/sales.phtml
    /app/design/frontend/default/blue/template/catalog/product/new.phtml

    Est ce normal de ne pas avoir de fichier Sales.phtml dans app/design/frontend/default/blue/template/catalog/product

     
  4. Adeline

    3 septembre 2010 à 14 h 09 min

    Tu places la div où tu veux voir apparaitre la vignette. Souvent tu l’affiche après le libellé du produit.
    Cependant, vu que le style css est en position ‘absolute’, tu peux mettre la div avant le libellé du produit.
    Concernant le fichier sales.phtml, il dépend d’une extension. C’est donc normal si tu ne l’a pas.
    Bonne intégration.

     
  5. Silv3r

    10 décembre 2010 à 9 h 33 min

    Bonjour !

    Juste une petite question ! Savez-vous si cette solution est compatible avec l’extension easy lightbox qui modifie les fiches produits sous magento ?

     
  6. Adeline

    10 décembre 2010 à 10 h 10 min

    Oui sans problème, il faut juste reprendre le fichier ajouté ou modifié par easy lightbox.

     
  7. Silv3r

    16 décembre 2010 à 17 h 52 min

    Merci ça marche impecable ! Je l’ai mis sur mon site en prod. Merci beaucoup pour ce tuto parfait !

     
  8. Silv3r

    25 février 2011 à 19 h 10 min

    Je rencontre un problème mes étiquettes se mettent devant mes photos produits. Jusque là tout va bien sauf que du coup je n’ai plus les liens vers le fiches produits, les balises alt etc etc… Savez-vous comment faire pour résoudre ce problème ?