我最近制作了一个模块,根据我导入的运费成本数据计算每个订单和order_item的实际毛利率。我通过在 sales_flat_order 表和 sales_flat_order_item 表中添加2列来完成此操作。这似乎很有效,直到我意识到当我保存导入的数据时,它还更新了 updated_at 值。由于这是所有订单的第一次导入,他们现在都报告已经更新了。这会丢掉与其同步的报告和其他运输软件。
这给我带来了两个问题:
如果有帮助,实际写入数据的代码在我的 IndexController.php 文件中。它循环遍历订单集合和这些订单中的项目,并使用$order->setGrossMargin($orderGM)->save();
之类的东西设置必要的值。我想这是对save()
的调用,但是我不确定解决这个问题的正确方法。
与此同时,我正在研究一种解决方案,在该解决方案中,我将数据导入自定义表,并且只在必要时从销售表中读取。不管怎样,这是一个很好的练习:)
布赖恩
答案 0 :(得分:1)
您没有调用save(),而是尝试:
$order->getResource()->saveAttribute('gross_margin')