magento-1.5

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


Solution

  • 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