3

商品属性オブジェクトの型を取得する方法を知りたいです。Magento バックエンドでは、「テキスト フィールド」や「ドロップダウン」などのさまざまなオプションから選択する必要があります。

製品インポート スクリプトを使用していますが、値を正しく設定するには、どのタイプの属性であるかを知ることが重要です。

4

1 に答える 1

12

オブジェクトの値を取得する簡単なマジック メソッドがあります。

$attribute = Mage::getModel('eav/entity_attribute')->load( $your_attribute_id );
$attribute->getFrontendInput();

結果は、"text" や "select" などの短い文字列になります。以下は、Magento 1.7 のすべてのタイプの短いリストです (ドイツ語の翻訳)。

  • テキスト: Einzeiliges Textfeld
  • テキストエリア: Mehrzeiliger Textbereich
  • 日付: データム
  • ブール値: Ja/Nein
  • 複数選択: Mehrfach Auswahl
  • select: selected="selected: ドロップダウン
  • 価格:プライス
  • media_image: ビルド
  • weee: Feste Produktsteuer (FPT)

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"
  }
}
于 2013-06-25T08:28:16.397 に答える