Magento - 在adminhtml_sales_order_create_process_data事件期间按顺序保存数据

时间:2012-02-17 11:39:23

标签: events magento

我在“adminhtml_sales_order_create_process_data”上设置了一个观察者。

我已在管理创建订单表单中添加了新的表单字段(添加了自定义属性):

app/design/adminhtml/default/default/template/sales/order/create/data.phtml

然后在我的观察者中,我像这样捕捉那个领域:

$orderRequest = $data->getEvent()->getRequest('order');
$customField = $orderRequest['customfield'];

我需要在我的数据库中存储customField和orderId(当然,在我的观察者调用时,订单尚未创建,因此我无法获取任何ID)

理想情况下,我希望能够使用setData()将数据保存在quote / order对象中,然后在保存报价/订单后设置另一个观察者并将其保存在那里的订单中,但此时没有报价或订单对象可用!

有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:0)

我不清楚你的问题,但对你来说可能有意义:

  1. 每个订单都预订了incrementId(orderId?)。
  2. 每个订单都有自己的保护代码。
  3. 对于订单保存,应该有类似sales_order_save_after和sales_order_save_before事件的内容。
  4. 更新1

    总而言之,目前我看到了一个解决方案:

    adminhtml_sales_order_create_process_data
    

    你应该得到

    $observer->getOrderCreateModel()
    

    哪个方法

    $model->getQuote()
    

    引用

    $quote->getReservedOrderId()
    

    你应该给order_id返回。