我想在产品页面中将不同的属性组显示为标签。例如,我对不同类型的产品有不同的属性集,但我希望根据产品类型,将属性组列为不同的选项卡。
是否有开箱即用的解决方案,或者我需要自己做?
我的算法是:
任何提示和帮助欢迎! 感谢
答案 0 :(得分:0)
//Set this to whatever you need to.
$allowedGroupIds = array(1,2,3,4);
//Get all groups
$groups = Mage::getModel('eav/entity_attribute_group')
->getResourceCollection()
->setAttributeSetFilter($_product->getAttributeSetId())
->setSortOrder()
->load();
foreach ($groups as $group) {
//Skip the groups you don't need.
if (!in_array($group->getId(), $allowedGroups)) {
continue;
}
echo '<h3>'.$group->getId().' - '.$group->getAttributeGroupName().'</h3>';
//Get attributes from the group
$attributes = Mage::getResourceModel('catalog/product_attribute_collection')
->setAttributeGroupFilter($group->getId())
->addVisibleFilter()
->checkConfigurableProducts()
->load();
if ($attributes->getSize() > 0) {
echo '<ul>';
foreach ($attributes->getItems() as $attribute) {
$attrCode = $attribute->getAttributeCode();
$attrValue = $_product->getData($attrCode);
echo '<li>';
if (!is_array($attrValue)) {
echo $attrCode.' = '.$attrValue;
} else {
//Do something if the attribute value is array.
}
echo '</li>';
}
echo '</ul>';
}
}