Php – Magento and configurable product attributes

magentoPHP

I have an issue with displaying product custom attributes.
I've read every resources through google but still no success.
The problem is that I have to show size attribute of configurable product on category grid and list view.
Every solution on google suggested something like

$_product->getAttributeText('size')

but I ended up at just a single string – "S" or "M" instead of an array.
How can I fetch all possible sizes of all simple products which belongs to particular configurable product without much hassle?

UPDATE

After using solution proposed by Joseph Mastey I encountered another problem. I managed to show all possible options for given attribute, but now I need to show only these options which are available to buy. For example if t-shirt size L is out of stock or is disabled, L option should not be shown. How can I solve this issue?

Best Answer

When dealing with configurable products (or any time you're dealing with a concept for only one type of product, as configurable attributes are), you'll probably be working with getTypeInstance. See below, I grab the configurable attributes for the product, then find the one for size. You could also just run through every configurable attribute if you wanted. Or if size is the only configurable attribute, just skip that 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 />";
        }
    }
}

Hope that helps! Thanks,

Joe