La tâche est plutôt complexe, la logique de Magento étant d’afficher le bouton d’ajout au panier dans toutes les catégories ou dans aucune .
Toutefois, cela est possible grâce à l’identifiant unique de la catégorie et un test conditionnel.
Pour ce faire :

  • allez dans le dossier /app/design/frontend/default/abpd/template/catalog/product/
  • ouvrez le fichier list.phtml
  • trouvez ensuite la portion de code qui génère le bouton d’ajout au panier et les autres (chez moi, il commence à partir des lignes 59 et 103)
<?php if($_product->isSaleable()): ?>                           
<p> <button class="button" onclick="setLocation('<?php

echo $this->getAddToCartUrl($_product)  ?>')">

<span><?php echo $this->__('Add to Cart') ?></span></button></p>                            
<?php else: ?>                            
<p class="availability"><span class="out-of-stock">

<?php echo $this->__('Out of stock') ?></span></p>                            
<?php endif; ?>                            
<ul class="add-to-links">                                
<?php if ($this->helper('wishlist')->isAllow()) : ?>                                    
<li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>">
<?php echo $this->__('Add to Wishlist') ?></a></li>                                
<?php endif; ?>                                
<?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>                                    
<li>
<span class="separator">|</span> 
<a href="<?php echo $_compareUrl ?>">
<?php echo $this->__('Add to Compare') ?></a>
</li>                                
<?php endif; ?>                            
</ul>     

Modifiez cette portion. L’idée ici est de récupérer l’id de la catégorie, puis de l’utiliser pour effectuer le test conditionnel suivant :

lorsque l’id renvoyé est celui d’une catégorie où le bouton doit disparaître, on laisse un blanc. Sinon , on affiche le code permettant de générer le bouton ‘ajouter au panier’

(veuillez remplacer les ID 1 , 2 et 3 par ceux qui s’appliquent dans votre cas.)

<!--on recupere l'id de la categorie-->                 
<?php $category = Mage::getModel('catalog/layer')->getCurrentCategory()->getId();?>                    
<?php if($category == 1):?>
<?php //linstruction ci dessous sert a deboguer ?>                                
<?php //echo $category ;?>
<?php elseif($category == 2): ?>                

<?php elseif($category == 3): ?>                

<?php else: ?>              
<?php if($_product->isSaleable()): ?>                           
<p> <button class="button" onclick="setLocation('

<?php 

echo $this->getAddToCartUrl($_product) 

?>')">

<span><?php 

echo $this->__('Add to Cart') ?>

</span></button></p>                            
<?php else: ?>                            
<p class="availability">

<span class="out-of-stock">

<?php echo $this->__('Out of stock') ?>

</span></p>                            
<?php endif; ?>                            
<ul class="add-to-links">                                
<?php if ($this->helper('wishlist')->isAllow()) : ?>                                    
<li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>">
<?php echo $this->__('Add to Wishlist') ?></a></li>                                
<?php endif; ?>                                
<?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>                                    
<li>
<span class="separator">|</span> 
<a href="<?php echo $_compareUrl ?>">
<?php echo $this->__('Add to Compare') ?></a>
</li>                                
<?php endif; ?>                            
</ul>                          


<?php endif; ?>

Jean Luc Houédanou