Bagaimana cara mendapatkan semua opsi untuk semua tampilan toko untuk satu atribut?

13

Saya mencoba mengambil semua opsi untuk semua tampilan toko untuk satu atribut misalnya color.

Untuk atribut colorsaya telah membuat dua opsi bluedan white. Saya telah mencoba kode berikut yang seharusnya mengembalikan semua label opsi untuk semua tampilan toko, tetapi hanya mengembalikan adminlabel opsi untuk saya.

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

Berikut ini berfungsi dengan baik untuk mendapatkan semua colorjudul atribut untuk setiap tampilan toko, tetapi tidak berfungsi untuk opsi.

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

Cuplikan layar dari atribut dan opsi warna saya.

dnelson
sumber

Jawaban:

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
sumber
Dan bagaimana cara menyimpannya ke 1 tampilan toko tertentu?
snh_nl