Показать атрибуты продукта в list.phtml - Magento - PullRequest
4 голосов
/ 22 декабря 2011

Здравствуйте, я прочитал много сообщений об этом, и пока он работает, он не завершен.

Например;Атрибут 1 = размер обуви и атрибут 2 = цвет обуви.Оба находятся в раскрывающемся списке, и я хотел бы перечислить все возможные цвета атрибутов для продукта на страницах категорий.

Проблема: Когда я проверяю код, он отображает только первый цвет обуви, а не все позиции,Что я здесь не так делаю?

Вот 3 примера того, что у меня есть.Весь код работает, но показывает только первый цвет атрибута.Пример 1:

<!-- Find the following loop -->
<?php foreach ($_productCollection as $_product): ?>
<!-- Inside it insert one of the following codes as needed -->
<!-- Use this for regular text attributes -->
<?php echo $_product->getMyAttribute() ?>
<?php echo $_product->getAnotherCustomAttribute() ?>

<!-- Use this for dropdown attributes -->
<?php echo $_product->getAttributeText('shoecolor') ?>
<?php endforeach?>
<!-- ... --> 

Пример 2

<?php echo $_product->getResource()->getAttribute('shoecolor')->getFrontend()->getValue($_product) ?>

Пример 3

<?php $type = "simple"; $p = "0" ?> 
<?php foreach ($_productCollection as $_product): ?> 
<?php $custom = Mage::getModel('catalog/product_type_configurable')->setProduct($_product); ?> 
<?php $col = $custom->getUsedProductCollection()->addAttributeToSelect('shoecolor')->addFilterByRequiredOptions(); ?> 
<?php foreach($col as $simple_product) { $p=$simple_product->getId(); $type="configurable"; } ?> 

<?php if($type == "configurable"): ?> 
<h5><?php echo $_product->load($p)->getAttributeText('shoecolor'); ?><?php $type="simple" ?></h5> 
 <?php endif; ?> 

Ответы [ 4 ]

14 голосов
/ 17 декабря 2013

Вы можете просто настроить его на странице редактирования атрибута

Используется в списке товаров -> Да

6 голосов
/ 22 декабря 2011

Другой способ

$_product = Mage::getModel('catalog/product')->load($this->getProduct()->getId());

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

Если ваш атрибутвведите текстовое поле ($ _product должен быть загружен):

<?php
  echo $_product->getShoesize();
  // if your arribute was shoe_size then
  echo $_product->getShoeSize();
?>

Если ваш атрибут типа Multiple Select или Dropdown, чтобы получить все значения атрибута:

<?php
   echo $_product->getAttributeText('shoesize');
?>
1 голос
/ 22 декабря 2011

Вот код получения имени атрибута и значения, которое не принадлежит ни одному продукту

$attributeCode = 'YOUR_ATTRIBUTE_CODE';

$product = Mage::getModel('catalog/product');

$productCollection = Mage::getResourceModel('eav/entity_attribute_collection')
   ->setEntityTypeFilter($product->getResource()->getTypeId())
   ->addFieldToFilter('attribute_code', $attributeCode);

$attribute = $productCollection->getFirstItem()->setEntity($product->getResource());
print_r($attribute->getData()); // print out the available attributes

$options = $attribute->getSource()->getAllOptions(false);
print_r($options); // print out attribute options
0 голосов
/ 11 апреля 2014

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

$_pp2 = Mage::getModel('catalog/product')->load(    $_product->getId()    );
echo $_pp2->getdm();

в:

 <?php $i=0; foreach ($_productCollection as $_product): ?>
        <?php if ($i++%$_columnCount==0): ?>

Код атрибута: дм

Type: Text area

в view.phtml

echo $_product->get>getdm(); ?>
...