Magento: выбор производителя / бренда из базы данных - PullRequest
1 голос
/ 25 октября 2011

У меня есть этот код от Мукеша Чапагена: ссылка здесь

$_product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
$manufacturerName = $_product->getAttributeText('manufacturer');
$manufacturerId = $_product->getManufacturer();

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

любая помощь в получении атрибута производителя будет оценена

Ответы [ 2 ]

7 голосов
/ 16 ноября 2011

Для получения всех производств

$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'manufacturer');

foreach ( $attribute->getSource()->getAllOptions(true, true) as $option){
     $attributeArray[$option['value']] = $option['label'];
     }  

foreach($attributeArray as $key=>$val){
echo $val;

}

Получить продукцию от производителей

    $collection = Mage::getModel('catalog/product')->getCollection();
    $collection->addAttributeToSelect('manufacturer');
    $collection->addFieldToFilter(array(
        array('attribute' => 'manufacturer', 'eq' =>$designer_id),
    ));

Получить выбранного производителя к продукту

 $_productCollection=$this->getLoadedProductCollection();
 foreach ($_productCollection as $_product):
  echo $_product->getAttributeText('manufacturer');
 endforeach;
0 голосов
/ 21 ноября 2011

Честно говоря, я не могу сказать, что не так с рассматриваемым кодом.

Однако недавно я работал над чем-то связанным - если вы пытаетесь использовать коллекцию продуктов.Вместо того, чтобы пытаться исправить что-то, что, вероятно, не сломано, подумайте об этом как об альтернативном предложении.

Для начала вам нужно загрузить мою библиотеку шаблонов запросов .Он содержит класс для раскрывающихся атрибутов.Следующее добавляет в коллекцию столбец manufacturer_text.

$products = Mage::getResourceModel('catalog/product_collection');
Knectar_Select_Product_Values::enhanceProducts($products, 'manufacturer');

foreach ($products as $product) {
    echo $product->getManufacturerText(), '<br>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...