私はいろいろなことを試しましたが、どこにも行きません。利用可能なすべての製品属性セットの名前とIDを取得する方法を誰かに教えてもらえますか?1つは「デフォルト」になります...
私はカスタム見積もりシステムを構築しており、ユーザーが最初にそれを選択してから、そのセットに割り当てられている製品をロードできるように、属性セットを取り込む必要があります。
助けてくれて本当にありがとうございます。
私はいろいろなことを試しましたが、どこにも行きません。利用可能なすべての製品属性セットの名前とIDを取得する方法を誰かに教えてもらえますか?1つは「デフォルト」になります...
私はカスタム見積もりシステムを構築しており、ユーザーが最初にそれを選択してから、そのセットに割り当てられている製品をロードできるように、属性セットを取り込む必要があります。
助けてくれて本当にありがとうございます。
次の方法で属性セットをロードできます。
$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);
}
その後、属性セットごとにコレクションをロードできます。
Magento Admin System > Configuration で属性セット セレクターを取得する場合は、このクラスが役立ちます。
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>