¿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.

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

¿Y cómo guardarlo en 1 tienda determinada?
snh_nl
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.