我尝试以编程方式将自定义选项添加到产品中,然后将其添加到购物车中.我用的是:
$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);
Run Code Online (Sandbox Code Playgroud)
这是购物车和结帐过程中产品的显示选项,但不显示订单信息中的选项.我也尝试过:
$item->getProduct()->addCustomOption('additional_options', $attr_value );
Run Code Online (Sandbox Code Playgroud)
尝试通过属性显示它们 - 没有帮助.
$params = array('product' => '1919','qty' => 1,
'options' => array(
'glove_size' => $gloves_id,
),);
$cart->addProduct('1919', $params);
Run Code Online (Sandbox Code Playgroud)
Magento版本是1.5
我没有检查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>
Run Code Online (Sandbox Code Playgroud)
在观察者中设置详细信息选项
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);
}
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅本文: Magento - 自定义产品选项不按顺序显示
感谢Vinai
| 归档时间: |
|
| 查看次数: |
1806 次 |
| 最近记录: |