2012-05-09 3 views
4

Я бы хотел, чтобы некоторые продукты были «не проданы», удалив кнопку «Добавить в корзину» и добавив ссылку на контактную форму.Magento - Товары, не предназначенные для продажи

Я ищу это решение в течение нескольких недель. Поиск, я нашел этот пост:

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

Но я не могу заставить его работать. Кто-то может помочь мне с подробностями?

+0

как далеко вы получите с этим учебником? Какие части не работали/бросали ошибки? Вы использовали правильный идентификатор (а не только 4, который находится в руководстве)? –

ответ

7

Этот учебник будет работать, но я бы сделал это по-другому.

Прежде всего, этот учебник заставляет вас использовать определенный идентификатор набора атрибутов. Как и в случае с идентификаторами продуктов, идентификаторами категорий и т. Д., Это может измениться, если вы управляете средой разработки/производства. Я бы не рекомендовал этого.

Лично (и я знаю, что есть лучшие способы), я бы создал новый атрибут продукта, что-то вроде строк «Не для продажи». Сделайте этот атрибут «Да/Нет» по умолчанию «Нет» (он продается).

Тогда, где у вас есть кнопка Добавить корзину, в view.phtml, например, найти кусок кода, который отображает кнопку дополнения к тележке, что-то вроде:

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

Wrap Этот блок со следующим:

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

Тогда для тех продуктов, которые вы не хотите, чтобы приобрести, установить значение атрибута в управлении продуктом «Да».

Кроме того, вы можете связать оператор else, чтобы отобразить альтернативную кнопку или что угодно.

Этот метод принципиально такой же, но дает вам более мелкозернистый контроль, так как вам не придется возиться с различными наборами атрибутов и их идентификаторами. Также намного легче управлять именами атрибутов, чем ваши идентификаторы набора атрибутов.

--- редактировать --- Чтобы поместить содержимое вместо кнопки:

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

Здравствуйте, pspah. Ваше решение работало как шарм! Спасибо! Еще один вопрос ... Как я могу показать там заявление? Например: «позвоните нам». – Brightweb

+0

см. Отредактированный ответ ... – pspahn

+0

Массивное спасибо @pspahn. Делает так много смысла, когда вы об этом думаете. – PaulSkinner

Смежные вопросы