単一の属性のすべてのストアビューのすべてのオプションを取得する方法は?


13

たとえば、単一の属性のすべてのストアビューのすべてのオプションを取得しようとしていますcolor

属性については、color2つのオプションblueとを作成しましたwhite。すべてのストアビューのすべてのオプションラベルを返すと想定される次のコードを試しましたが、adminオプションラベルのみを返します。

$option_arr = array();
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'color');
foreach ($attribute->getSource()->getAllOptions(false) as $option) {
  $option_arr[$option['value']] = $option['label'];
}
// $option_arr contains Array([4] => Blue, [3] => White)

以下はcolor、各ストアビューのすべての属性タイトルを取得するためには正常に機能しますが、オプションに対しては機能しません。

$product = Mage::getModel('catalog/product')->load();
$attribute_title = $product->getResource()->getAttribute('color');
// $attribute_title contains Array([1] => ~~~, [2] =>Color, [3] => Couleur, [4] => Còôlòôr)

色の属性とオプションのスクリーンショット。

回答:


16
    /**
     * @var $config  Mage_Eav_Model_Config
     * @var $options Mage_Eav_Model_Resource_Entity_Attribute_Option_Collection
     */
    $storeId   = 3;
    $config    = Mage::getModel('eav/config');
    $attribute = $config->getAttribute(Mage_Catalog_Model_Product::ENTITY, 'color');
    $values    = $attribute->setStoreId($storeId)->getSource()->getAllOptions();
    print_r($values);

    //here is another method
    $options = Mage::getResourceModel('eav/entity_attribute_option_collection');
    $values  = $options->setAttributeFilter($attribute->getId())->setStoreFilter($storeId)->toOptionArray();
    print_r($values);

そして、それを1つの特定のストアビューに保存する方法は?
snh_nl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.