Magento 按组加载产品属性?

Posted

技术标签:

【中文标题】Magento 按组加载产品属性?【英文标题】:Magento load product attributes by group? 【发布时间】:2014-05-29 20:11:44 【问题描述】:

有没有办法进入 foreach 循环并遍历 Magento 属性组中的所有产品属性?请检查屏幕截图。例如,我只想遍历设计组属性中的值。

https://s3.amazonaws.com/uploads.hipchat.com/62230/429611/8EOCq5jqCKVUkJR/Screen%20Shot%202014-05-29%20at%204.10.10%20PM.png

谢谢

【问题讨论】:

【参考方案1】:

不,没有内置函数可以返回按组组织的产品属性数组。这是缺少的功能之一。您需要自己在帮助程序或块类中创建它。

[编辑]

看来我错了。有一种方法可以返回给定组的属性。它位于Mage_Catalog_Model_Product::getAttributes()。第一个参数是组 ID。所以你可以这样做:

$groupId = Mage::getModel('eav/entity_attribute_group')->getCollection()
    ->addFieldToFilter('attribute_set_id', array('eq' => $_product->getAttributeSetId()))
    ->addFieldToFilter('attribute_group_name', array('eq' => 'General'))
    ->getFirstItem()->getId();

foreach($_product->getAttributes($groupId) as $attribute) 
  //this will return text value even for multiselect
  $attributeVal = $attribute->getFrontend()->getValue($_product);

  //or but you need to handle retriving select and multiselect labels
  $attributeVal = $_product->getData($attribute->getCode());

这使得从组中获取属性变得更容易,但我认为它仍然需要自己的帮助程序,或者更好的是,自己的块,因为 phtml 文件中的那段代码不是最佳实践。

【讨论】:

以上是关于Magento 按组加载产品属性?的主要内容,如果未能解决你的问题,请参考以下文章

Magento 获取未加载所有属性的相关产品

Magento - 按属性分类产品

Magento 产品属性数量

属性的magento产品计数

如果产品缺货,则显示属性 Magento

Magento 中的 Ajax(加载产品视图块)