Magento - 定制产品选项不按顺序显示

时间:2013-11-21 15:51:43

标签: magento

我尝试以编程方式将自定义选项添加到产品中,然后将其添加到购物车中。我用的是:

$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);

这是购物车和结帐过程中产品的显示选项,但不显示订单信息中的选项。 我也尝试过:

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

尝试通过属性显示它们 - 没有帮助。

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

Magento版本为1.5

1 个答案:

答案 0 :(得分:6)

我没有检查1.5版本,但下面的代码将在1.7.2版本中运行:

要查看自定义选项,您需要在订单商品中设置选项。可以通过调用事件 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>

在观察者中设置详细信息选项

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);
    }
}

有关详细信息,请参阅本文: Magento - custom product option don't show in order

感谢 Vinai

相关问题