2010-04-30 155 views
7

我在显示产品自定义属性时遇到问题。 我已经通过谷歌阅读了所有资源,但仍然没有成功。 问题是我必须在类别网格和列表视图中显示可配置产品的大小属性。 对谷歌的每个解决方案建议类似Magento和可配置的产品属性

$_product->getAttributeText('size') 

但我结束了在只是一个单一的字符串 - “S”或“M”,而不是一个数组。 如何获取属于特定配置产品的所有简单产品的所有可能尺寸,而没有太多麻烦?

UPDATE

使用约瑟夫Mastey提出的解决方案后,我遇到了另一个问题。我设法给出了给定属性的所有可能选项,但是现在我只需要显示可以购买的这些选项。例如,如果T恤大小L缺货或被禁用,则不应显示L选项。我该如何解决这个问题?

+0

你是否曾想出一个解决方案呢?我面临同样的问题。 – Luke 2011-12-08 20:08:35

回答

18

在处理可配置产品时(或者任何时候只处理一种产品的概念,因为可配置属性),您可能会使用getTypeInstance。请参阅下面的内容,我获取产品的可配置属性,然后查找尺寸的属性。如果需要,您也可以运行每个可配置的属性。或者,如果size是唯一的可配置属性,则跳过该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 2010-05-05 08:06:20