Magento и настраиваемые атрибуты продукта - PullRequest
7 голосов
/ 30 апреля 2010

У меня проблема с отображением пользовательских атрибутов продукта. Я прочитал все ресурсы через Google, но все еще безуспешно. Проблема в том, что мне нужно показать атрибут размера настраиваемого товара в сетке категорий и в виде списка. Каждое решение в Google предлагало что-то вроде

$_product->getAttributeText('size')

но я получил только одну строку - «S» или «M» вместо массива. Как я могу получить все возможные размеры всех простых продуктов, принадлежащих конкретному конфигурируемому продукту, без особых хлопот?

UPDATE

После использования решения, предложенного Джозефом Масти, я столкнулся с другой проблемой. Мне удалось показать все возможные варианты для данного атрибута, но теперь мне нужно показать только те варианты, которые доступны для покупки. Например, если футболка размера L отсутствует или недоступна, опция L не должна отображаться. Как я могу решить эту проблему?

1 Ответ

18 голосов
/ 30 апреля 2010

Когда вы имеете дело с конфигурируемыми продуктами (или когда вы имеете дело с концепцией только для одного типа продукта, как настраиваемые атрибуты), вы, вероятно, будете работать с getTypeInstance. Смотрите ниже, я беру настраиваемые атрибуты для продукта, а затем нахожу один для размера. Вы также можете просто пройти через все настраиваемые атрибуты, если хотите. Или, если размер является единственным настраиваемым атрибутом, просто пропустите это if().

$attrs  = $_product->getTypeInstance(true)->getConfigurableAttributesAsArray($_product);
foreach($attrs as $attr) {
    if(0 == strcmp("size", $attr['attribute_code'])) {
        $options    = $attr['values'];
        foreach($options as $option) {
            print "{$option['store_label']}<br />";
        }
    }
}

Надеюсь, это поможет! Спасибо,

Джо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...