2013-08-18 5 views
2

Я создал (вручную через панель администратора) атрибут под названием att_by_website, который имеет область действия как «Веб-сайт», и я хочу получить его несколько значений.Magento - Получить значение атрибута для каждого сайта

Как это сделать? Я могу установить разные значения через панель администратора, но в это время я могу получить значение по умолчанию.

При выполнении $this->getProduct()->getData('att_by_website') он возвращает только значение по умолчанию (где $this->getProduct() возвращает экземпляр Mage_Catalog_Model_Product).

Спасибо!

+0

Вы должны установить идентификатор магазина для модели продукта перед вызовом нагрузки. То есть 'Mage :: getModel ('catalog/product') -> setStoreId () -> load()'. – Zyava

+0

Спасибо за подсказку, но я не верю, что это то, что мне нужно. getProduct() уже указывает на сам продукт, это означает, что мне не нужно снова запрашивать DB. – MatheusJardimB

+0

Является ли область атрибутов установленной на веб-сайте? Возможно, вы запрашиваете глобальные атрибуты. –

ответ

4

Это может быть не лучший подход, но решить эту проблему:

$value = Mage::getResourceModel('catalog/product')->getAttributeRawValue($productID, 'att_by_website', $storeId); 
+1

Огромная вам помощь – Nickool

1

Попробуйте это:

foreach (Mage::app()->getWebsites() as $website) { 
    $websiteId = $website->getWebsiteId(); 
    $storeId = $website->getDefaultGroup()->getDefaultStoreId(); 
    Mage::app()->setCurrentStore($storeId); 

    echo $this->getProduct()->getData('att_by_website'); 
}