商品属性オブジェクトの型を取得する方法を知りたいです。Magento バックエンドでは、「テキスト フィールド」や「ドロップダウン」などのさまざまなオプションから選択する必要があります。
製品インポート スクリプトを使用していますが、値を正しく設定するには、どのタイプの属性であるかを知ることが重要です。
オブジェクトの値を取得する簡単なマジック メソッドがあります。
$attribute = Mage::getModel('eav/entity_attribute')->load( $your_attribute_id );
$attribute->getFrontendInput();
結果は、"text" や "select" などの短い文字列になります。以下は、Magento 1.7 のすべてのタイプの短いリストです (ドイツ語の翻訳)。
1 つの属性からすべてのオプションのリストが必要な場合は、次のようにします。
Mage::getModel( 'eav/config' )->getAttribute( 'catalog_product' , 'code_of_attribute' )
これで、属性オブジェクトがロードされました。オブジェクトをロードするための他の方法は私にとってはうまくいきません(例Mage::getModel('eav/entity_attribute')->load('xy');
)。
次に、getSource() メソッドと getAllOptions メソッドを使用して、すべてのオプションを含む配列を受け取ります。
$your_attribute->getSource()->getAllOptions(true, true)
結果は次のようになります。
array(4) {
[0]=>
array(2) {
["label"]=>
string(0) ""
["value"]=>
string(0) ""
}
[1]=>
array(2) {
["value"]=>
string(1) "5"
["label"]=>
string(6) "red"
}
[2]=>
array(2) {
["value"]=>
string(1) "4"
["label"]=>
string(6) "blue"
}
[3]=>
array(2) {
["value"]=>
string(1) "3"
["label"]=>
string(6) "green"
}
}