デフォルトでは注文状態イベントはないようですが、通常は注文状態の変化をどのように観察しますか?2つの可能性があります。a)販売/注文モデルを上書きして、状態変更のカスタムイベントを作成します。b)注文保存イベントを観察し、そこで状態を確認します。
これらのうちの1つは進むべき道ですか、それともより良いオプションがありますか?
編集:これまでの回答に感謝します。状況はもう少し複雑です。現在の状態に応じて注文に情報を追加したい。ここに問題があります:save_beforeイベントでは、古い状態のままで新しい状態にはなりません。sales/ orderモデルでは_beforeSave()メソッドが次のようになっているためです。
parent::_beforeSave();
$this->_checkState();
//...
したがって、イベントは処理されますがparent::_beforeSave();
、注文の状態は後で実際に変更されます$this->_checkState();
(これは自動変更です。たとえば、請求書を作成すると、まだ出荷がない場合、状態は処理に移行します)。
sthを保存したいので、save_afterイベントも使用できません。順序で、おそらくsave_afterイベントでsaveを呼び出すためにすべてを壊します。
何か案は?今の私の唯一のアイデアは$this->_checkState();
、私のsave_beforeオブザーバーで動作を複製して、最終的に状態がどうなるかを見つけることです...