Атрибут продукта на продуктах сетка/просмотр списка (производитель)

magento.stackexchange https://magento.stackexchange.com/questions/5601

Вопрос

Я пытаюсь показать атрибуты продукта на сетке (Catalog (Products/list.phtml).

В приложении/code/coremage/catalog/block/product/list.php я нашел это

public function addAttribute($code)
{
    $this->_getProductCollection()->addAttributeToSelect($code);
    return $this;
}

На моем Catalog.xml (Theme/Mayout/Catalog.xml) я добавляю следующий «Addattribute в моем блоке

    <catalog_category_default translate="label">
    <label>Catalog Category (Non-Anchor)</label>
    <reference name="left">
        <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/>
    </reference>
    <reference name="content">
        <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
            <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">

                <action method="addAttribute"><attribute>Manufacturer</attribute></action>

На моем phtml-template я стараюсь показать производителю так:

<?php echo $_product->getAttributeText('manufacturer') ?>

Но это не работает. Я не знаю почему. Я нашел учебник через Google, и я уверен, что я сделал это правильно. Я работаю с Magento Enterprise 1.13. Где моя вина? Спасибо за вашу помощь.

Это было полезно?

Решение

Вам нужна вся эта разметка XML, чтобы добавить атрибут в сетку продукта. Просто отредактируйте атрибут в бэкэнде, установите поле Used in Product Listing к Yes, все повторно, и вы должны иметь возможность использовать в catalog/product/list.phtml это:

<?php echo $_product->getAttributeText('manufacturer') ?>

Другие советы

В Magento 1.7.2 вы должны использовать это

<?php echo $_product->getManufacturer() ?>

Если вы хотите сделать еще один шаг и отобразить логотип для производителей, вы можете реализовать следующий код как в view.phtml, так и/или list.phtml:

   <?php $brand=$_product->getAttributeText('manufacturer');
$filename= $_SERVER['DOCUMENT_ROOT'].'/media/catalog/brands/'.str_replace(' ', '_',$brand).'.jpg';
if (file_exists($filename)) {
                    echo '<img style="float: left; margin: 2px;" src="/media/catalog/brands/'.str_replace(' ', '_',$brand).'.jpg" alt="'.$brand.'">'; 
                    }
                    ?>

Примечание: вам нужно разместить JPG для каждого названия производителя в вашем /Magento/Media/Catalog/Brand/ Имя должно соответствовать атрибуту вашего производителя.

Пример:

Производитель = холодильник ----> filename = холодильник.jpg

Если вы не разместите файл, соответствующий атрибуту производителя, будет отображаться имя атрибута.

В Magento 1.9 CE мы попробуем Marius ответом и не работаем, мы делаем это:

<?php echo $this->__('Year:') . $this->htmlEscape($_product->getData('year'));?>

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

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

Просто отредактируйте атрибут в бэкэнде, установите поле «Используется в списке продуктов» на «Да».

<?php echo $_product->getAttributeText('country_of_manufacture') ?>

Здесь country_of_manufacture это код атрибута.

Мне нужен производитель с гипер -ссылкой. Мой веб -сайт имеет модуль Marketplace, и у каждого продавца есть название магазина и магазина в этом "Блок-титл MP-vendor-name" Анкет Теперь я хочу показать каждое имя продавца ниже продукта на странице категории.

Пожалуйста, помогите мне. Заранее спасибо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top