2012-05-09 4 views
4

Je voudrais mettre certains produits à "non vendable", en supprimant le bouton "Ajouter au panier" et en ajoutant un lien vers le formulaire de contact.Magento - Produits pas à vendre

Je suis à la recherche de cette solution pour quelques semaines. Recherche, j'ai trouvé ce post:

http://www.e-commercewebdesign.co.uk/blog/magento-tutorials/non-salable-products-with-attribute-sets.php

Mais je ne peux pas le faire fonctionner. Quelqu'un pourrait m'aider avec plus de détails?

+0

dans quelle mesure avez-vous avec ce tutoriel? Quelles parties n'ont pas fonctionné/ont jeté des erreurs? Avez-vous utilisé l'identifiant correct (pas seulement le 4 qui est dans le guide)? –

Répondre

7

Ce tutoriel fonctionnera, mais je le ferais différemment. Tout d'abord, ce didacticiel vous oblige à utiliser un ID d'ensemble d'attributs spécifique. Comme pour les ID de produit, les ID de catégorie, etc., cela peut changer si vous gérez des environnements de serveurs de développement/production. Je ne le recommanderais pas.

Personnellement (et je sais qu'il existe de meilleurs moyens), je créerais un nouvel attribut de produit, quelque chose du genre «Pas à vendre». Faites cet attribut 'Oui/Non' avec un défaut de Non (c'est à vendre).

Alors, où vous avez un bouton Ajouter au panier, en view.phtml par exemple, trouver le morceau de code qui affiche l'add-to-cart bouton, quelque chose comme:

<?php echo $this->getChildHtml('addtocart') ?> 

Wrap ce morceau ce qui suit:

<?php if(!$_product->getNotForSale()) : ?> 
     <?php echo $this->getChildHtml('addtocart') ?> 
<?php endif ?> 

Ensuite, pour les produits que vous ne voulez pas acheter, définissez la valeur d'attribut dans la gestion des produits à « Oui ».

En outre, vous pouvez lier une autre instruction là-bas pour afficher un autre bouton ou autre.

Cette méthode est fondamentalement la même, mais vous offre un contrôle plus précis, car vous n'aurez pas à manipuler les différents jeux d'attributs et leurs ID. Il est également beaucoup plus facile de contrôler vos noms d'attributs que vos ID d'ensemble d'attributs.

--- --- modifier Pour placer le contenu au lieu du bouton:

<?php if(!$_product->getNotForSale()) : ?> 
    <?php echo $this->getChildHtml('addtocart') ?> 
<?php else : ?> 
    <?php echo $this->__('Call Us to Order') ?> 
    ... or whatever else you may want here ... 
<?php endif ?> 
+0

Bonjour, pspah. Votre solution a fonctionné comme un charme! Je vous remercie! Une question de plus ... Comment puis-je afficher une déclaration là-bas? Par exemple: "appelez-nous". – Brightweb

+0

voir la réponse modifiée ... – pspahn

+0

Merci beaucoup @pspahn. Cela a tellement de sens quand on y pense. – PaulSkinner