Sembra che non ci sia alcun evento sullo stato dell'ordine per impostazione predefinita, quindi come si fa a osservare il cambiamento dello stato dell'ordine? Ci sono due possibilità che vedo: a) Sovrascrivi il modello di vendita / ordine per creare il tuo evento personalizzato per un cambio di stato b) Osserva l'evento di salvataggio dell'ordine e osserva lo stato in esso
Uno di questi è la strada da percorrere o esiste un'opzione migliore?
Modifica: grazie per le risposte finora. La situazione è un po 'più complicata. Voglio aggiungere informazioni all'ordine in base allo stato corrente. Ora ecco il problema: nell'evento save_before ho ancora il vecchio stato e non ora il nuovo stato, perché nel modello vendite / ordine il metodo _beforeSave () è il seguente:
parent::_beforeSave();
$this->_checkState();
//...
Quindi l'evento viene elaborato parent::_beforeSave();
MA lo stato dell'ordine viene successivamente modificato in seguito $this->_checkState();
(si tratta della modifica automatica, ad esempio se si crea una fattura, lo stato viene spostato in elaborazione se non è ancora presente alcuna spedizione)
Nemmeno io posso usare l'evento save_after, poiché voglio salvare sth. all'ordine e probabilmente si spezzerebbe tutto per chiamare un salvataggio nell'evento save_after.
Qualche idea? La mia unica idea ora è replicare il $this->_checkState();
comportamento nel mio osservatore save_before per scoprire quale sarà finalmente lo stato ...