在前端隐藏一些可配置属性 - magento

时间:2012-12-19 02:42:37

标签: attributes hide magento-1.7 configurable-product

请帮助......任何人

我在隐藏一些可配置属性时遇到问题:

这些是我在后端的可配置属性:

  • 形状/类型
  • Grit&颜色
  • 项目包
  • 直径
  • 供应商

我的客户希望隐藏"制造商"前端属性 但是想在后端导入供应商。

请参阅我正在工作的网站:

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()

它仍然指的是属性&#34;供应商&#34;等待用户响应,在下拉列表中选择制造商。

这就是我收到错误的原因:请指明产品的选项。

我的问题:

是否可以过滤函数getJsonConfig()?    假设不包括:

if($ attributecode!=&#39; manufacturer&#39;){        做点什么.....     }

我复制了此功能的本地版本,现在位于:app\code\local\Mage\Catalog\Block\Product\View\Type\Configurable.php

请帮助......如果有人遇到这种问题。 我尝试扩展getJsonConfig()以过滤某些属性,例如&#34; supplier&#34;但无济于事。

我做对了吗?

1 个答案:

答案 0 :(得分:1)

根据您的描述,您可能无需使用“供应商”属性即可重新制作可配置产品。

当您制作可配置产品时,第一个允许您使用复选框标记属性的屏幕用于定义可配置产品过滤的内容,属性仍将附加到产品信息。