¿Cómo obtener todas las opciones para todas las vistas de la tienda para un solo atributo?

13

Estoy tratando de recuperar todas las opciones para todas las vistas de la tienda para un solo atributo, por ejemplo color.

Para el atributo colorhe creado dos opciones bluey white. He intentado el siguiente código que se supone que devuelve todas las etiquetas de opciones para todas las vistas de la tienda, pero solo me devuelve la adminetiqueta de opción.

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

Lo siguiente funciona bien para obtener todos los colortítulos de atributos para cada vista de tienda, pero no funciona para las opciones.

$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 pantalla de mi atributo de color y opciones.

dnelson
fuente

Respuestas:

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
fuente
¿Y cómo guardarlo en 1 tienda determinada?
snh_nl