我最近制作了一个模块,可以根据我导入的运费数据计算每个订单和 order_item 的实际毛利率。为此,我向 sales_flat_order 表和 sales_flat_order_item 表添加了 2 列。这似乎很有效,直到我意识到当我保存导入的数据时,它也更新了 updated_at 值。由于这是所有订单的第一次导入,因此它们现在都报告已在今天更新。这会导致报告和其他与其同步的运输软件失效。
这让我想到了 2 个问题:
- 向现有表(在本例中为销售表)添加一列是否是一个主要的禁忌?
- 如果不是,有没有办法设置不增加 updated_at 值的数据?
如果有帮助,实际写入数据的代码在我的 IndexController.php 文件中。它遍历订单集合和这些订单中的项目,并使用类似 $order->setGrossMargin($orderGM)->save();
的方式设置必要的值。我想这是对 save()
的调用,但我不确定解决这个问题的正确方法。
与此同时,我正在研究一种解决方案,在该解决方案中,我将数据导入自定义表,并且只在必要时从销售表中读取数据。无论哪种方式,这都是一个很好的练习:)
布莱恩
最佳答案
你试过没有调用 save(),而是:
$order->getResource()->saveAttribute('gross_margin')
关于php - Magento 订单表 : custom column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7367878/