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.

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

E como salvá-lo em uma certa visualização de loja?
snh_nl 21/05/19
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.