【问题标题】:Magento - custom product option don't show in orderMagento - 自定义产品选项不按顺序显示
【发布时间】:2013-11-21 15:51:42
【问题描述】:

我正在尝试以编程方式向产品添加自定义选项,为什么要将他添加到购物车。我正在使用:

$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

【问题讨论】:

    标签: magento-1.5


    【解决方案1】:

    我还没有在 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

    感谢维奈

    【讨论】:

    • @jyotirajan:我的附加选项采用数组格式,如数组('code' => 'my_code45', 'label' => 'platelet 1', 'value' => array('shape'= >'Shape - Round', 'material'=>'Material-Gold', 'symbol'=>'Symbol' - image) );此格式未显示在管理员销售订单上,但此格式在购物车和结帐页面中运行良好
    • 您可以在 name.phtml (/app/design/adminhtml/default/default/template/sales/items/column/name.phtml) 文件中检查这个,或者在管理端检查订单对象报价自定义选项是否转换为订单对象。可以在“info_buyRequest”或“additional_options”列中设置。
    • @Jyotiranjan 请回答这个问题magento.stackexchange.com/questions/202036/…
    • @Jyotiranjan 我已将“ring_size”添加为自定义选项。那么如何在 admin->sales->order 上显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多