2011-09-09 27 views
1

私は最近、すべての注文とorder_itemの実際の粗利益を計算するモジュールを作成しました。これはインポートする送料データに基づいています。私はsales_flat_orderテーブルとsales_flat_order_itemテーブルに2つの列を追加してこれを行いました。インポートされたデータを保存したときに、updated_atという値も更新されたことに気付くまで、これはうまくいくように思えました。これがすべての注文の最初のインポートであったので、今すぐ更新されたと報告しています。これは、レポートやそれと同期する他の出荷ソフトウェアを投げ捨てている。Magento注文表:カスタム列

これは2つの質問に私をもたらします:

  1. は(この場合には、販売・テーブル)を主要なNO-NO既存のテーブルに列を追加していますか?
  2. そうでない場合は、updated_atの値を増やさないデータを設定する方法がありますか?

実際にデータを書き込むコードは、IndexController.phpファイル内にあります。注文のコレクションとそれらの注文内のアイテムをループし、$order->setGrossMargin($orderGM)->save();のようなものを使用して必要な値を設定します。私はそれがそれをやっているsave()への呼び出しだと思いますが、私はこの問題の周りに正しい方法を確信していません。

私はカスタムテーブルにデータをインポートし、必要に応じて販売テーブルからのみ読み込むソリューションに取り組んでいます。いずれにせよ、それはあなたがしようでしたが、良い運動:)

ブライアン・セーブ

答えて

1

代わりの呼び出し()です:

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

+0

いいえ、私はありませんでした。私はそれを試み、 'saveAttribute'の引数1が' Mage_Core_Model_Abstract'でなければならないので、例外がスローされました。関数やその他のユースケースを見ると、 'saveAttribute'を呼び出すオブジェクトを渡すことができるようです。だから、私はこれを試してみました: '$ order-> getResource() - > saveAttribute($ order、 'gross_margin');' – BrianVPS

関連する問題