Как получить доступ к данным модели Magento из другой области - PullRequest
3 голосов
/ 11 ноября 2011

Я сталкиваюсь с требованием доступа к значениям для атрибута, которые указаны в другой области действия на сайте с несколькими веб-сайтами / несколькими магазинами.В частности, нам нужно отобразить метку Admin (по умолчанию) для атрибута во внешнем интерфейсе, когда метка для Store была установлена.

enter image description here

Таким образом, код должен отображать шестнадцатеричное значение из столбца Admin в одной части страницы и текстовое описание на английском (США) в другой части страницы.,Как я могу это сделать?

С другой стороны, я видел случаи, когда значения были установлены в представлении магазина, но имеют значение NULL для значения по умолчанию, и код возвращает значение NULL, даже если хранилище было установлено.Может кто-нибудь объяснить, как это работает?

1 Ответ

6 голосов
/ 11 ноября 2011

Вот как это сделать, используя классы Magento:

// Get the model of the attribute in question 
/* @var $attribute Mage_Catalog_Model_Resource_Eav_Attribute */
$attribute = Mage::getSingleton('eav/config')->getAttribute('catalog_product', 'color');

// Load the option collection for that attribute adding the storeFilter()
/* @var $collection Mage_Eav_Model_Resource_Entity_Attribute_Option_Collection */
$collection = Mage::getResourceModel('eav/entity_attribute_option_collection')
        ->setPositionOrder('asc')
        ->setAttributeFilter($attribute->getId())
        ->setStoreFilter();

// Load the product so we can get the correct option from the collection
$product = Mage::getModel('catalog/product')->load(39);
$productOption = $collection->getItemById($product->getColor());

printf("Default: %s, Store: %s\n", $productOption->getDefaultValue(), $productOption->getValue());

Отрегулируйте при необходимости.

...