Magento 通过添加属性扩展属性

Magento 通过添加属性扩展属性,magento,Magento,我有一个Magento站点,它将包含许多属性和属性集。每个类别都有自己的集合,客户希望类别和产品视图根据所属类别显示不同的属性 这在switch/if语句中很容易做到,但如果可能的话,我不想硬编码 我的想法是在属性中添加一个新属性,名为在_frontend'上显示_,然后我可以在循环中使用它来查看是否应该显示属性。这可能吗 前端的产品视图页面上已经有一个名为Visible的属性,我最初想使用它,但当我获得该属性时,它在数据中不可用 下面是我用来获取产品视图属性的代码 $_attributes =

我有一个Magento站点,它将包含许多属性和属性集。每个类别都有自己的集合,客户希望类别和产品视图根据所属类别显示不同的属性

这在switch/if语句中很容易做到,但如果可能的话,我不想硬编码

我的想法是在属性中添加一个新属性,名为在_frontend'上显示_,然后我可以在循环中使用它来查看是否应该显示属性。这可能吗

前端的产品视图页面上已经有一个名为Visible的属性,我最初想使用它,但当我获得该属性时,它在数据中不可用

下面是我用来获取产品视图属性的代码

$_attributes = Mage::getModel('catalog/product_attribute_api')->items($_product->getAttributeSetId());

foreach ($_attributes as $_attribute) :
    $attributeFull = Mage::getResourceModel('eav/entity_attribute_collection')
                                                ->setCodeFilter($_attribute['code'])
                                                ->getFirstItem();
endforeach;
返回内容的一个示例响应是

[_data:protected] => Array
    (
        [attribute_id] => 139
        [entity_type_id] => 4
        [attribute_code] => safe_working_load_range_tonnes
        [attribute_model] => 
        [backend_model] => 
        [backend_type] => int
        [backend_table] => 
        [frontend_model] => 
        [frontend_input] => select
        [frontend_label] => Safe Working Load (Tonnes)
        [frontend_class] => 
        [source_model] => eav/entity_attribute_source_table
        [is_required] => 0
        [is_user_defined] => 1
        [default_value] => 
        [is_unique] => 0
        [note] => 
    )
是否有人对如何扩展属性或以合理的方式解决问题有任何建议


谢谢您

在后端,当您创建属性时,有一个“是/否”选项,标记为“在前端的产品视图页面上可见”

转到管理>目录>属性>管理属性>选择您的属性“在前端显示”>前端属性>将“在前端产品视图页面上可见”更改为“是”

然后,要访问该属性的值,只需调用:

$_product->getData("display_on_frontend");
或者只使用camel case getter:

$_product->getDisplayOnFrontend();

嗨,迈克,谢谢你的回复。很抱歉,如果我没有正确解释我自己,但是我需要在属性上创建一个新属性,而不是一个新属性本身。没关系,由于时间不够,我走了一条不同的路,虽然是硬编码的,但如果有人知道我会有兴趣听到,如果可能的话。。。