无法在产品页面上获取产品自定义属性值

时间:2013-09-25 19:59:01

标签: magento attributes product

我为管理员介绍了产品的属性,并为特定产品分配了一个值以获取其价值。但是价值没有出现在前端,我尝试了所有推荐的方法,但无法得到它。然后我用print_r($_product->debug())继续进行调试。此调试向我展示了以下行为:

Array
(
    [store_id] => 1
    [entity_id] => 339

    [_cache_instance_products] => Array
    (
        [0 (Mage_Catalog_Model_Product)] => Array
        .
        .
        .
        [419 (Mage_Catalog_Model_Product)] => Array
        (
            [entity_id] => 1210
        [entity_type_id] => 4
            [prd_help_tab] => This is testing help for "Mobster US e-liquid"
        )
    )
)

属性名称是“prd_help_tab”,它的值在那里,但它在_cache_instance_products =>里面。 419(Mage_Catalog_Model_Product)=> prd_help_tab

我的问题是如何在模板文件中获取此值?因为该值仅在上面提到的层次结构中。

经过进一步调查后,我发现“可配置产品”中出现了这个问题。

4 个答案:

答案 0 :(得分:3)

你应该能够

$_product->getPrdHelpTab();

尝试在收集产品时添加

$_productCollection->addAttributeToSelect("prd_help_tab");

通过将管理中的属性设置为“在产品列表中使用”然后重新编制索引,确保管理中的属性包含在平面表中

include attribute in product flat

答案 1 :(得分:0)

第一: 确保admin config中的属性在目录列表和产品视图布局中设置为可见。

简单: Magento具有通过名称调用值的层次结构,但是在页面上必须为正确的产品加载Magento库和产品帮助程序(通过调试得到它)$ _product = $ this-> getProduct();

要求您的价值看起来像:$ _product-> getPrdHelpTab();

或者,如果没有工作,请致电:

<?php
    $_helper = $this->helper('catalog/output');
    $_product = $this->getProduct()
?>
<?php if($_additional = $this->getAdditionalData()): ?>
<?php foreach ($_additional as $_data): ?>
<?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?>
<?php endforeach;?>
<script type="text/javascript">decorateTable('product-attribute-specs-table')</script> 
<?php endif; ?>

答案 2 :(得分:0)

<?php echo $_product->getAttributeText('custom attribute'); ?></span> 

答案 3 :(得分:0)

您只需在custom_pro_name的位置编写您的属性代码,以获取view.phtml产品页面中的显示值。

<?php echo $_helper->productAttribute($_product, nl2br($_product->getcustom_pro_name()), 'custom_pro_name')

如果您有群组产品,请在group.phtml页面

中编写此代码
$this->escapeHtml($_item->getfirst_avail())