Magento - получить все значения атрибутов

Мне необходимо получить список всех значений атрибута "цвет". когда я использую этот код

$name='color';
$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter($name)->getFirstItem();
$attributeId = $attributeInfo->getAttributeId();
$attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);
$attributeOptions = $attribute ->getSource()->getAllOptions(false); 

В этом случае я получаю такой список:

 (
        [0] => Array
            (
                [value] => 6
                [label] => blueAdmin
            )
        [1] => Array
            (
                [value] => 5
                [label] => coralAdmin
            )
        [2] => Array
            (
                [value] => 3
                [label] => redAdmin
            )
        [3] => Array
            (
                [value] => 4
                [label] => limeAdmin
            )
    ) 

Это список всех значений, которые отображаются в административной части сайта. Как я могу получить список всех значений атрибутов, которые отображаются в магазине, а не в административной части сайта?

Спасибо.

1 ответ

Вы можете получить значения параметров атрибута для конкретного хранилища, установив идентификатор хранилища для атрибута до вызова getAllOptions(), например,

$attributeOptions = $attribute->setStoreId(1)->getSource()->getAllOptions(false);

получает значения параметров для магазина с идентификатором 1. Вы можете получить идентификатор текущего магазина с помощью

Mage::app()->getStore()->getId();

Так что-то вроде этого должно дать вам то, что вы хотите:

$storeId = Mage::app()->getStore()->getId();
$attributeOptions = $attribute->setStoreId($storeId)->getSource()->getAllOptions(false);
Другие вопросы по тегам