Скрытие некоторого настраиваемого атрибута в front-end - magento
Пожалуйста, помогите... кто-нибудь
У меня проблема со скрытием некоторых настраиваемых атрибутов:
Это мои настраиваемые атрибуты на сервере:
- Форма / Тип
- Зернистость и цвет
- хвостовик
- Пакет предметов
- Диаметр
- поставщик
Мой клиент хочет скрыть атрибут "Производитель" на внешнем интерфейсе, но хочет импортировать поставщика на внутреннем.
Пожалуйста, посмотрите сайт, на котором я работаю:
http://ridental.com.au/newsite/polishers.html/
Мне удалось скрыть это от внешнего интерфейса, просто добавив несколько операторов if, например: app\design\frontend\default\MYTEMPLATE\template\catalog\product\view\type\options\configurable.phtml
<?php
$_product = $this->getProduct();
$_attributes = Mage::helper('core')->decorateArray($this->getAllowAttributes());
?>
<?php if ($_product->isSaleable() && count($_attributes)):?>
<dl class="outer">
<dl class="inner">
<?php foreach($_attributes as $_attribute): ?>
<?php $attCode = $_attribute->getProductAttribute()->getFrontend()->getAttribute()->getAttributeCode(); ?>
<?php if($attCode != "manufacturer"):?>
<div class="dtdd-wrapper<?php if ($_attribute->decoratedIsLast){echo " last";}?>">
<dt><label class="required"><em>*</em><?php echo $_attribute->getLabel() ?></label></dt>
<dd<?php if ($_attribute->decoratedIsLast){?> class="last"<?php }?>>
<div class="input-box">
<select name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]" id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry super-attribute-select">
<option><?php echo $this->__('Choose an Option...') ?></option>
</select>
</div>
</dd>
</div>
<?php endif; ?>
<?php endforeach; ?>
</dl>
</dl>
<script type="text/javascript">
[b]var spConfig = new Product.Config(<?php echo $this->getJsonConfig() ?>);[/b]
</script>
Производитель не будет отображаться на внешнем интерфейсе.
Но когда я нажимаю кнопку Добавить в корзину, я получаю сообщение об ошибке:
Пожалуйста, укажите вариант продукта (ов).
Я заметил, что в:
var spConfig = new Product.Config(<?php echo $this->getJsonConfig()
Он по-прежнему ссылается на атрибут "поставщик" и ожидает ответа пользователя, чтобы выбрать производителя в раскрывающемся списке.
вот почему я получаю сообщение об ошибке: Пожалуйста, укажите параметры продукта.
Мой вопрос:
Можно ли отфильтровать функцию getJsonConfig()
? скажем не включать
if ($attributecode!= 'изготовитель'){сделать что-нибудь..... }
Я скопировал локальную версию этой функции и теперь нашел в: app\code\local\Mage\Catalog\Block\Product\View\Type\Configurable.php
Пожалуйста, помогите... если кто-то достиг такого рода проблемы. Я пытался расширить getJsonConfig()
фильтровать некоторые атрибуты, такие как "поставщик", но безрезультатно.
Я правильно делаю?
1 ответ
Скорее всего, из того, что вы описываете, вы должны переделать конфигурируемый продукт без использования атрибута "Поставщик".
Когда вы создаете настраиваемый продукт, первый экран, который позволяет помечать атрибуты флажками, предназначен для определения того, что настраиваемый продукт будет фильтровать, а атрибуты все равно будут прикреплены к информации о продукте.