Я пытаюсь отобразить как значение атрибута продукта, так и метку атрибута (атрибут label = «Available Colors» code code = ‘available_colours’) на странице категории для определенного набора атрибутов (id = 9).
В настоящее время я использую следующий код для отображения значения атрибута, но, похоже, не могу отобразить метку атрибута.
<?php
if (9 == $_product->getAttributeSetId()) {
echo $_product->getAvailableColours()
}
?>
Какие-либо предложения?
Следующее должно помочь:
<?php
$attributeSetId = 9;
if ($attributeSetId == $_product->getAttributeSetId()) {
echo $this->__('Available Colours') . "=" . $_product->getAvailableColours();
}
?>
если вы хотите распечатать для нескольких атрибутов, вы можете попробовать ниже код:
<?php
$attributeSetId = 9;
if ($attributeSetId == $_product->getAttributeSetId()) {
$productData = $_product->getData();
foreach($productData as $attributeCode=>$attributeValue) {
echo $attributeCode . "=" . $attributeValue; //You can do needed customization to check if attribute value is array then there will be a second loop here.
}
}
?>
Кроме того, лучше не использовать статический идентификатор, так как он может меняться в зависимости от сервера.
С помощью следующего кода вы сможете динамически загружать идентификатор набора атрибутов из имени набора атрибутов.
<?php
$attributeSetName = "default"; // put your own attribute set name $attribute_set =
Mage::getModel("eav/entity_attribute_set")->getCollection();
$attribute_set->addFieldToFilter("attribute_set_name",$attributeSetName)->getFirstItem();
$attributeSetId = $attribute_set->getAttributeSetId(); //In your case you will get 9
?>
Других решений пока нет …