我已经尝试了各种各样的事情,但我无处可去。请有人告诉我如何获取所有可用产品属性集的名称和 ID?一个是“默认”...
我正在构建一个自定义报价系统,需要提取属性集,以便用户可以先选择它,然后加载分配给该集的产品。
非常感谢您的帮助。
我已经尝试了各种各样的事情,但我无处可去。请有人告诉我如何获取所有可用产品属性集的名称和 ID?一个是“默认”...
我正在构建一个自定义报价系统,需要提取属性集,以便用户可以先选择它,然后加载分配给该集的产品。
非常感谢您的帮助。
您可以使用以下方式加载属性集:
$attributeSetCollection = Mage::getResourceModel('eav/entity_attribute_set_collection') ->load();
迭代:
foreach ($attributeSetCollection as $id=>$attributeSet) {
$entityTypeId = $attributeSet->getEntityTypeId();
$name = $attributeSet->getAttributeSetName();
Mage::log("ATTRIBUTE SET :".$name." - ".$id);
}
然后,您可以按属性集加载您的集合。
因此,当您尝试获取在管理员的管理属性集部分中显示的属性集时,您可以遵循以下编码:
<?php
require_once('app/Mage.php');
umask(0);
Mage::app();//->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$entityType = Mage::getModel('catalog/product')->getResource()->getTypeId();
$collection = Mage::getResourceModel('eav/entity_attribute_set_collection')->setEntityTypeFilter($entityType);
$allSet = array();
foreach($collection as $coll){
$attributeSet['name'] = $coll->getAttributeSetName();
$attributeSet['id'] = $coll->getAttributeSetId();
$allSet[] = $attributeSet;
}
echo "<pre>";
print_r($allSet);
echo "</pre>";
?>
点击这里!更多参考。
如果你想在 Magento 管理系统 > 配置中获得一个属性集选择器,这个类会很有用:
class CompanyName_ModuleName_Model_System_Config_Source_Catalog_Product_Attributeset
{
protected $_options = array();
public function toOptionArray()
{
if (!count($this->_options)) {
$entityTypeId = Mage::getResourceModel('catalog/product')->getTypeId();
$attributeSetCollection = Mage::getResourceModel('eav/entity_attribute_set_collection')
->setEntityTypeFilter($entityTypeId);
foreach ($attributeSetCollection as $_attributeSet) {
$this->_options[] = array(
'value' => $_attributeSet->getId(),
'label' => $_attributeSet->getAttributeSetName()
);
}
}
return $this->_options;
}
}
这些属性集受catalog_product实体类型的限制。
实际上,您将需要system.xml中的字段,如下所示:
<select_attribute_set translate="label">
<label>Default Attribute Set for new importing products</label>
<frontend_type>select</frontend_type>
<source_model>companyname_modulename/system_config_source_catalog_product_attributeset</source_model>
<sort_order>30</sort_order>
<show_in_default>1</show_in_default>
</select_attribute_set>