1

我最近制作了一个模块,根据我导入的运费数据计算每个订单和 order_item 的实际毛利率。我通过向sales_flat_order表和sales_flat_order_item表添加 2 列来做到这一点。这似乎工作得很好,直到我意识到当我保存导入的数据时,它也更新了updated_at值。由于这是所有订单的第一次导入,他们现在都报告说今天已更新。这会抛弃报告和其他与之同步的运输软件。

这给我带来了两个问题:

  1. 向现有表(在本例中为销售表)添加列是否是主要的 NO-NO?
  2. 如果没有,有没有办法设置不增加updated_at值的数据?

如果有帮助,实际写入数据的代码在我的IndexController.php文件中。它遍历订单集合和这些订单中的项目,并使用类似$order->setGrossMargin($orderGM)->save();. 我想这是对它的调用save(),但我不确定解决这个问题的正确方法。

同时,我正在研究一种解决方案,在该解决方案中,我将数据导入自定义表,并仅在必要时从销售表中读取。无论哪种方式,这是一个很好的练习:)

布赖恩

4

1 回答 1

1

您没有尝试调用 save(),而是尝试:

$order->getResource()->saveAttribute('gross_margin')

于 2011-09-10T01:57:00.890 回答