如何以编程方式将项目添加到购物车以及一旦订购后会出现在评论历史记录中的预定义文本? 客户不应编辑此预定义文本注释。它主要用作关于订单项的元信息,履行它的人需要知道。
如果无法做到这一点,是否还有其他方法可以将预定义文本附加到购物车中用于此目的?
答案 0 :(得分:1)
我正在做类似的事情,但不完全一样......
我已经创建了一个模块,我在向购物车添加新产品时为报价添加了一些新的自定义值
在模块中,我有一个观察者:
<frontend>
<events>
<checkout_cart_product_add_after>
<observers>
<mymodule_addtocart_observer>
<class>mymodule_addtocart/observer</class>
<method>myMethod</method>
</mymodule_addtocart_observer>
</observers>
</checkout_cart_product_add_after>
在我的观察者中,我更新了我的报价
public function myMethod(Varien_Event_Observer $obs) {
$item = $obs->getQuoteItem();
$quote = $item->getQuote();
$quote->setData("myattribute", "myvalue");
}
我猜你可以在观察者中更新你的项目。
希望它有所帮助...
答案 1 :(得分:0)
对我来说,最好的方法应该是为这个元信息创建一个产品属性,并在视图订单页面上显示属性值到自定义的adminhtml主题(或查看我不知道的货件)。 这样您就不必创建观察者,订单项属性,...... 缺点是如果您更新产品中的信息,该值也将在过去的订单中更新。根据您的需要,这可能是个问题。
答案 2 :(得分:0)
我的解决方案......
添加到购物车时,获取报价项ID,然后在磁盘上创建一个文本文件,其中引用项ID为文件名。将您需要存储的数据序列化到此文件中。然后为sales_order_place_before事件创建一个观察者。引用项ID将传递给该事件,因此您可以引用该文本文件。
不要使用会话来存储数据,因为即使用户注销然后稍后重新登录,购物车项目也会保留。