2011-09-09 95 views
1

我最近做了一個模塊,它根據我導入的運輸成本數據計算每個訂單和order_item的實際毛利。我通過向sales_flat_order表和sales_flat_order_item表添加了2列。這似乎很好,直到我意識到當我保存導入的數據時,它也更新了值。由於這是所有訂單的首次進口,他們現在都報告今天已更新。這是拋出報告和其他運輸軟件與它同步。Magento訂單表:自定義列

這使我2個問題:

  1. 也加入到現有的表中的列(在這種情況下,銷售表)一個主要的NO-NO?
  2. 如果不是,有沒有辦法設置不會增加數值的數據,更新值爲updated_at

如果有幫助,實際寫入數據的代碼位於我的IndexController.php文件中。它通過收集訂單和這些訂單中的項目進行循環,並使用$order->setGrossMargin($orderGM)->save();之類的設置來設置必要的值。我想這是打電話給save()這樣做,但我不確定解決這個問題的正確方法。與此同時,我正在研究一種解決方案,在該解決方案中,我將數據導入到自定義表格中,並在必要時僅從銷售表格中讀取數據。無論哪種方式,這是一個很好的鍛鍊:)

布賴恩

回答

1

而不是調用save(),你嘗試:

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

+0

不,我沒有。我試過了,它拋出了一個異常,因爲'saveAttribute'的參數1必須是'Mage_Core_Model_Abstract'。看看函數和其他用例,似乎我可以傳遞我調用'saveAttribute'的對象。所以,我嘗試了這一點,它的工作原理:'$ order-> getResource() - > saveAttribute($ order,'gross_margin');'' – BrianVPS