Magento:如何检查订单中的值是否已更改

时间:2013-07-04 10:38:05

标签: magento

我正在处理magento的订单导入连接器。为了提高性能,我只想加载之前未加载的订单。这没有问题,只需保存订单ID即可。但是,如果有更改,例如在magento后端更改了帐单邮寄地址,或者订单状态设置为另一个,则无法识别。

我的想法是寻找一个“updated_at”列,我预计,如果根据订单有任何变化,Magento每次都会更新此值 - 如果是订单状态或账单/送货地址,则无其他。

幸运的是有一个updated_at列,但是如果我更改了帐单地址,则新日期未设置为updated_at列。我的新billing_name可通过表“sales_flat_order_grid”和“sales_flat_order_address”中的“phpMyAdmin”找到。在第一个中,还有一个updated_at列(它还包含旧值,而不是真正的“更新时间”),在第二个列中没有updated_at列。

整个订单是否有“updated-at”列?我知道,我可以使用magento-events,mysql触发器或覆盖负责的magento类来做类似的事情,但我更愿意使用标准的Magento安装。

谢谢! :)

2 个答案:

答案 0 :(得分:1)

我会通过isDirty()检查模型。由于这种方法在Varien_Object,你应该好好去......

祝你好运!

答案 1 :(得分:0)

我检查了Varient_Object的源代码,似乎在设置一些属性时不会自动设置。相反,您必须明确调用:flagDirty($field, $flag=true)

编辑: 不幸的是,即使是flagDirty()方法也行不通。 _dirty字段永远不会被初始化。似乎这是一个错误。

但是,您可以使用hasDataChanges()。