Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Magento and configurable product attributes

Tags:

php

magento

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?

like image 989
artega Avatar asked Apr 30 '10 06:04

artega


People also ask

What are configurable products in Magento?

A configurable product is a parent product of multiple simple products. You define a configurable product so that the buyer must make one or more choices to select a product. For example, most clothing comes in a variety of colors and sizes.

What is the difference between simple product and configurable product in Magento?

The core differences between Simple products and Configurable products are SKUs. Simple products only have a single SKU, while configurable products have multiple SKUs.

What is a configurable product in Magento 2?

A configurable product in Magento 2 consolidates all variations of a product. On the storefront, it looks like a product that offers options and allows customers to choose between variations based on attributes like color and size.


1 Answers

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

like image 132
Joe Mastey Avatar answered Sep 18 '22 10:09

Joe Mastey