Wie erhalte ich alle Optionen für alle Geschäftsansichten für ein einzelnes Attribut?

13

Ich versuche, alle Optionen für alle Geschäftsansichten für ein einzelnes Attribut abzurufen, z color.

Für das Attribut habe colorich zwei Optionen angelegt blueund white. Ich habe den folgenden Code ausprobiert, der angeblich alle Optionsbezeichnungen für alle Geschäftsansichten zurückgibt, aber nur die adminOptionsbezeichnung für mich zurückgibt .

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

Das Folgende funktioniert einwandfrei, um alle Attributtitel colorfür jede Geschäftsansicht abzurufen, funktioniert jedoch nicht für Optionen.

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

Screenshot meiner Farbattribute und -optionen.

dnelson
quelle

Antworten:

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);
mageUz
quelle
Und wie speichere ich es in einer bestimmten Storeview?
snh_nl