Magento 1.9 – How to Get Ordered Product’s Color and Size

attributesevent-observermagento-1.9product-attribute

I want to get the color and size of ordered product on sales_order_save_after

i have write this code

$product = Mage::getModel('catalog/product')->load($item->getProductId());
$color = $product->getAttributeText('color');

config.xml event

<events>
    <sales_order_save_after> 
        <observers>
            <Piyush_orderexport_order_save_after>
                <type>singleton</type>
                <class>Piyush_OrderExport_Model_Observer</class>
                <method>exportOrder</method>
            </Piyush_orderexport_order_save_after>
        </observers>
    </sales_order_save_after>
</events>

but no value found

Best Answer

Assuming that color and size are product attributes.

to get product attribute you can use below code

$_product = Mage::getModel('catalog/product')->load($item->getProductId());
$size = $_product->getResource()->getAttribute('size')->getFrontend()->getValue($_product);
$color =  $_product->getResource()->getAttribute('color')->getFrontend()->getValue($_product);

for config product use below code

$order = $observer->getEvent()->getOrder();

foreach( $order->getAllVisibleItems() as $item ) {
    $options = $item->getProductOptions();
    $options = $options['attributes_info'];
}

it will give you all product option used for order and option value

output will look

Array
(
    [0] => Array
        (
            [label] => Color
            [value] => White
        )

    [1] => Array
        (
            [label] => Size
            [value] => XS
        )

)
Related Topic