6

私はいろいろなことを試しましたが、どこにも行きません。利用可能なすべての製品属性セットの名前とIDを取得する方法を誰かに教えてもらえますか?1つは「デフォルト」になります...

私はカスタム見積もりシステムを構築しており、ユーザーが最初にそれを選択してから、そのセットに割り当てられている製品をロードできるように、属性セットを取り込む必要があります。

助けてくれて本当にありがとうございます。

4

3 に答える 3

12

次の方法で属性セットをロードできます。

$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);
}

その後、属性セットごとにコレクションをロードできます。

于 2012-08-29T11:24:05.473 に答える
0

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>
于 2015-07-23T14:00:00.720 に答える