2010-04-30 2 views
7

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

$_product->getAttributeText('size') 

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

UPDATE

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

+0

Вы когда-нибудь могли придумать решение для этого? У меня такая же проблема. – Luke

ответ

18

При работе с настраиваемыми продуктами (или в любое время, когда вы имеете дело с концепцией только для одного типа продуктов, в качестве настраиваемых атрибутов), вы, вероятно, будете работать с 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 />"; 
     } 
    } 
} 

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

Joe

+0

Большое спасибо за вашу помощь. Была только одна простая проблема: getConfigurableAttributesAsArray должен был вызываться с параметром $ _product. – artega

Смежные вопросы