Как получить выбранный вариант атрибута для продукта?


Изо всех сил пытаюсь получить значение выбранного параметра для продукта.

Пример: Продукт требует сборки, поэтому созданный атрибут dropdown Ниже приведены несколько методов, которые я пробовал

echo $data = $_product->getAssembly();
echo $label = $_product->getAttributeText('Assembly');

$_attribute = $_product->getResource()->getAttribute('assembly');
$attribute_label = $_attribute->getStoreLabel(Mage::app()->getStore()->getName());

echo 'Label: '.$attribute_label;//empty
$attributeModel = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product','assembly');

$attributeModel->getData('label');
echo 'Model: '.$attributeModel;// empty
$atributeCode = 'assembly';

$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product',$atributeCode);
$options = $attribute->getSource()->getAllOptions();

var_dump отображает только массив всех параметров.

Как я могу его получить?

Author: Marius, 2017-02-20

1 answers

$_product->getAssembly() должен вернуть вам идентификатор опции, выбранной для текущего продукта.

$_product->getAttributeText('assembly') ( обратите внимание на имя атрибута в нижнем регистре) должно вернуть вам метку выбранного варианта сборки для текущего продукта.

Но есть одна загвоздка.
Если вы пробуете их на странице списка продуктов или где-то, где $_product является одной итерацией из коллекции продуктов, вам необходимо пометить атрибут assembly как "Используемый в списке продуктов" и перестроить плоские индексы продукта для того, чтобы работать.

 3
Author: Marius, 2017-02-20 13:50:22