Como obter todas as opções para todas as visualizações de loja para um único atributo?

13

Eu estou tentando recuperar todas as opções para todas as visualizações de loja para um único atributo, por exemplo color.

Para o atributo coloreu criei duas opções bluee white. Eu tentei o código a seguir, que deve retornar todos os rótulos de opções para todas as visualizações de loja, mas retorna apenas o adminrótulo de opção para mim.

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

A seguir, funciona bem para obter todos os colortítulos de atributo para cada visualização da loja, mas não funciona para as opções.

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

Captura de tela do meu atributo de cor e opções.

dnelson
fonte

Respostas:

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
fonte
E como salvá-lo em uma certa visualização de loja?
snh_nl 21/05/19