Привет, я прочитал много сообщений об этом, и пока он работает не полностью.
Например; Атрибут 1 = обувь и атрибут 2 = цвет обуви. Оба находятся в раскрывающемся списке, и я хотел бы перечислить все возможные цвета атрибутов для каждого продукта на страницах категорий.
Проблема: когда я тестирую код, он будет отображать только первый цвет обуви, а не все posibilites. Что я здесь делаю неправильно?
Вот 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; ?>
Вот имя и значение атрибута get get, которое не принадлежит ни одному продукту
$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
вы можете просто настроить его на странице редактирования атрибутов
Используется в товарном листинге -> Да
Другой путь
$_product = Mage::getModel('catalog/product')->load($this->getProduct()->getId());
Если вы создаете такой атрибут, как ваша «обувь», вы можете получить доступ, следуя коду.
Если ваш тип атрибута Text Field ($ _product должен быть загружен):
<?php echo $_product->getShoesize(); // if your arribute was shoe_size then echo $_product->getShoeSize(); ?>
Если ваш тип атрибута Multiple Select или Dropdown, чтобы получить все значения атрибута:
<?php echo $_product->getAttributeText('shoesize'); ?>
Попробуй это:
$_pp2 = Mage::getModel('catalog/product')->load( $_product->getId() ); echo $_pp2->getdm();
в:
<?php $i=0; foreach ($_productCollection as $_product): ?> <?php if ($i++%$_columnCount==0): ?>
Код атрибута: dm
Type: Text area
in view.phtml
echo $_product->get>getdm(); ?>