kafaya
kafaya

Reputation: 101

Magento - custom product option don't show in order

I'm try to add custom option to product programmatically whyle add him to cart. I'm use:

$a_options = array(
'options' => array(
     'label' => 'Glove Size',
     'value' => $attr_value ,
)
);

$item->addOption(new Varien_Object(
array(
    'product' => $item->getProduct(),
    'code' => 'additional_options',
    'value' => serialize($a_options)
)
));
$quote->addItem($item);

This is shows option for product in cart and during checkout process, but don't show option in order information. I also tried:

$item->getProduct()->addCustomOption('additional_options', $attr_value );

Try to show them via attributes - didn't help.

$params = array('product' => '1919','qty' => 1,
'options' => array(
                    'glove_size' => $gloves_id,
                  ),);
    $cart->addProduct('1919', $params);  

Magento version is 1.5

Upvotes: 2

Views: 3534

Answers (1)

Jyotiranjan
Jyotiranjan

Reputation: 693

I haven't check that in 1.5 version but the below code will work in 1.7.2 version:

For viewing the custom options you need set options in order items.That can be done through by calling an event sales_convert_quote_item_to_order_item

<sales_convert_quote_item_to_order_item>
    <observers>
        <jrb_setcustomoption_observer>
        <type>singleton</type>
        <class>jrb_setcustomoption/observer</class>
        <method>salesConvertQuoteItemToOrderItem</method>
        </jrb_setcustomoption_observer>
    </observers>
</sales_convert_quote_item_to_order_item>

Set the details options in your observer

public function salesConvertQuoteItemToOrderItem(Varien_Event_Observer $observer)
{
    $quoteItem = $observer->getItem();
    if ($additionalOptions = $quoteItem->getOptionByCode('additional_options')) {
        $orderItem = $observer->getOrderItem();
        $options = $orderItem->getProductOptions();
        $options['additional_options'] = unserialize($additionalOptions->getValue());
        $orderItem->setProductOptions($options);
    }
}

For More details you can find in this article: Magento - custom product option don't show in order

Thanks to Vinai

Upvotes: 6

Related Questions