2

我正在开发一个到 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 安装。

谢谢!:)

4

2 回答 2

1

我会通过 isDirty(). 既然这种方法在Varien_Object你应该很好去......

祝你好运!

于 2013-07-04T17:15:13.960 回答
0

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

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

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

于 2015-07-14T09:54:24.313 回答